ubuntu安裝docker步驟及docker常用命令


1. 在Ubuntu中安裝Docker

   更新ubuntu的apt源索引

   sudo apt-get update

   安裝包允許apt通過HTTPS使用倉庫

   sudo apt-get install \
       apt-transport-https \
       ca-certificates \
       curl \
       software-properties-common

   添加Docker官方GPG key

   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

   設置Docker穩定版倉庫

   sudo add-apt-repository \
      "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) \
      stable"

   添加倉庫后,更新apt源索引

   sudo apt-get update

   安裝最新版Docker CE(社區版)

   sudo apt-get install docker-ce

   檢查Docker CE是否安裝正確

   sudo docker run hello-world

   出現如下信息,表示安裝成功

 

   為了避免每次命令都輸入sudo,可以設置用戶權限,注意執行后須注銷重新登錄

   sudo usermod -a -G docker $USER

2. 啟動與停止

  安裝完成Docker后,默認已經啟動了docker服務,如需手動控制docker服務的啟停,可執行如下命令

  # 啟動docker
  sudo service docker start
  # 停止docker   sudo service docker stop   # 重啟docker   sudo service docker restart

3. Docker鏡像操作

  什么是Docker鏡像

  Docker 鏡像是由文件系統疊加而成(是一種文件的存儲形式)。最底端是一個文件引 導系統,即 bootfs,這很像典型的 Linux/Unix 的引導文件系統。Docker 用戶幾乎永遠不會和 引導系統有什么交互。實際上,當一個容器啟動后,它將會被移動到內存中,而引導文件系 統則會被卸載,以留出更多的內存供磁盤鏡像使用。Docker   容器啟動是需要一些文件的, 而這些文件就可以稱為 Docker

  Docker 把應用程序及其依賴,打包在 image 文件里面。只有通過這個文件,才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根據 image 文件生成容器的實例。同一個 image 文件,可以生成多個同時運行的容器實例。

  image 是二進制文件。實際開發中,一個 image 文件往往通過繼承另一個 image 文件,加上一些個性化設置而生成。舉例來說,你可以在 Ubuntu 的 image 基礎上,往里面加入 Apache 服務器,形成你的 image。

  image 文件是通用的,一台機器的 image 文件拷貝到另一台機器,照樣可以使用。一般來說,為了節省時間,我們應該盡量使用別人制作好的 image 文件,而不是自己制作。即使要定制,也應該基於別人的 image 文件進行加工,而不是從零開始制作。

  為了方便共享,image 文件制作完成后,可以上傳到網上的倉庫。Docker 的官方倉庫 Docker Hub 是最重要、最常用的 image 倉庫。此外,出售自己制作的 image 文件也是可以的。

  列出鏡像

  docker image ls

 

  • REPOSITORY:鏡像所在的倉庫名稱
  • TAG:鏡像標簽
  • IMAGEID:鏡像ID
  • CREATED:鏡像的創建日期(不是獲取該鏡像的日期)
  • SIZE:鏡像大小

  為了區分同一個倉庫下的不同鏡像,Docker 提供了一種稱為標簽(Tag)的功能。每個 鏡像在列出來時都帶有一個標簽,例如latest、 12.10、12.04 等等。每個標簽對組成特定鏡像的一 些鏡像層進行標記(比如,標簽 12.04 就是對所有 Ubuntu12.04 鏡像層的標記)。這種機制 使得同一個倉庫中可以存儲多個鏡像。--- 版本號

  我們在運行同一個倉庫中的不同鏡像時,可以通過在倉庫名后面加上一個冒號和標簽名 來指定該倉庫中的某一具體的鏡像,例如 docker run --name custom_container_name –i –t docker.io/ubunto:12.04 /bin/bash,表明從鏡像 Ubuntu:12.04 啟動一個容器,而這個鏡像的操 作系統就是 Ubuntu:12.04。在構建容器時指定倉庫的標簽也是一個好習慣。

  拉取鏡像

  Docker維護了鏡像倉庫,分為共有和私有兩種,共有的官方倉庫Docker Hub(https://hub.docker.com/)是最重要最常用的鏡像倉庫。私有倉庫(Private Registry)是開發者或者企業自建的鏡像存儲庫,通常用來保存企業 內部的 Docker 鏡像,用於內部開發流程和產品的發布、版本控制。

要想獲取某個鏡像,我們可以使用pull命令,從倉庫中拉取鏡像到本地,如

  docker image pull library/hello-world

  上面代碼中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在倉庫里面的位置,其中library是 image 文件所在的組,hello-world是 image 文件的名字。

  由於 Docker 官方提供的 image 文件,都放在library組里面,所以它的是默認組,可以省略。因此,上面的命令可以寫成下面這樣。

  docker image pull hello-world

  刪除鏡像

  docker image rm 鏡像名或鏡像id

  如

  docker image rm hello-world

4. Docker 容器操作

  創建容器

  docker run [option] 鏡像名 [向啟動容器中傳入的命令]

常用可選參數說明:

  • -i 表示以“交互模式”運行容器
  • -t 表示容器啟動后會進入其命令行。加入這兩個參數后,容器創建就能登錄進去。即 分配一個偽終端。
  • --name 為創建的容器命名
  • -v 表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄,即 宿主機目錄:容器中目錄),可以使 用多個-v 做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后 共享到容器上。
  • -d 在run后面加上-d參數,則會創建一個守護式容器在后台運行(這樣創建容器后不 會自動登錄容器,如果只加-i -t 兩個參數,創建后就會自動進去容器)。
  • -p 表示端口映射,前者是宿主機端口,后者是容器內的映射端口。可以使用多個-p 做多個端口映射
  • -e 為容器設置環境變量
  • --network=host 表示將主機的網絡環境映射到容器中,容器的網絡與主機相同

  交互式容器

  例如,創建一個交互式容器,並命名為myubuntu

  docker run -it --name=myubuntu ubuntu /bin/bash

  在容器中可以隨意執行linux命令,就是一個ubuntu的環境,當執行exit命令退出時,該容器也隨之停止。

  守護式容器

  創建一個守護式容器:如果對於一個需要長期運行的容器來說,我們可以創建一個守護式容器。在容器內部exit退出時,容器也不會停止。

  docker run -dit --name=myubuntu2 ubuntu

  進入已運行的容器

  docker exec -it 容器名或容器id 進入后執行的第一個命令

  如

  docker exec -it myubuntu2 /bin/bash

  查看容器

  # 列出本機正在運行的容器
  docker container ls

  # 列出本機所有容器,包括已經終止運行的
  docker container ls --all

  停止與啟動容器

  # 停止一個已經在運行的容器
  docker container stop 容器名或容器id

  # 啟動一個已經停止的容器
  docker container start 容器名或容器id

  # kill掉一個已經在運行的容器
  docker container kill 容器名或容器id

  刪除容器

  docker container rm 容器名或容器id

  5. 將容器保存為鏡像

  我們可以通過如下命令將容器保存為鏡像

  docker commit 容器名 鏡像名

6. 鏡像備份與遷移

  我們可以通過save命令將鏡像打包成文件,拷貝給別人使用

  docker save -o 保存的文件名 鏡像名

  如

  docker save -o ./ubuntu.tar ubuntu

  在拿到鏡像文件后,可以通過load方法,將鏡像加載到本地

  docker load -i ./ubuntu.tar
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM