在 Ubuntu 上安裝 Docker
以下 64 位版本的 Ubuntu Linux 支援 Docker :
- Ubuntu Xenial 16.04(LTS)
- Ubuntu Wily 15.10
- Ubuntu Trusty 14.04(LTS)
- Ubuntu Precise 12.04(LTS)
幾個筆記:
以下說明僅涉及使用 Docker 軟體包進行安裝,這可確保獲取 Docker 的最新官方版本。如果你只需要使用
Ubuntu-managed軟體包進行安裝,請參閱 Ubuntu 文件(出於顯而易見的原因,不建議使用)。
Ubuntu Utopic 14.10 和 15.04 存在於 Docker 的 APT 儲存庫中,但由於已知的安全問題而不再受到官方支援。
先決條件
- Docker 僅適用於 64 位 Linux 安裝。
- Docker 需要 Linux 核心版本 3.10 或更高版本(Ubuntu Precise 12.04除外,它需要 3.13 或更高版本)。早於 3.10 的核心缺少執行 Docker 容器所需的一些功能,並且包含導致資料丟失的已知錯誤,並且在某些情況下經常出現恐慌。使用命令uname -r檢查當前核心版本。如果你需要通過向下滾動來更新Ubuntu Precise (12.04 LTS)核心,請檢視此帖子。請參閱此 WikiHow 帖子以獲取其他 Ubuntu 安裝的最新版本。
更新 APT 來源
這需要完成以便從 Docker 儲存庫訪問包。
- 使用 sudo或root許可權以使用者身份登入計算機。
- 開啟終端視窗。
- 更新程式包資訊,確保 APT 與 https 方法一起使用,並且已安裝 CA 證書。
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
- 
新增新的 GPG金鑰。此命令從金鑰伺服器hkp://ha.pool.sks-keyservers.net:80下載 ID 為58118E89F3A912897C070ADBF76221572C52609D的金鑰,並將其新增到adv keychain。有關更多資訊,請參閱man apt-key的輸出。$ sudo apt-key adv \ --keyserver hkp://ha.pool.sks-keyservers.net:80 \ --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- 
在下表中找到與你的 Ubuntu 版本對應的條目。這決定了 APT 搜尋 Docker 軟體包的位置。如果可能,執行 Ubuntu 的長期支援(LTS)版本。 
| Ubuntu 版本 | 知識庫 | 
|---|---|
| Precise 12.04(LTS) | deb https://apt.dockerproject.org/repo ubuntu-precise main | 
| Trusty 14.04(LTS) | deb https://apt.dockerproject.org/repo ubuntu-trusty main | 
| Wily 15.10 | deb https://apt.dockerproject.org/repo ubuntu-wily main | 
| Xenial 16.04(LTS) | deb https://apt.dockerproject.org/repo ubuntu-xenial main | 
注意: Docker 不提供所有體系結構的包。二進位制檔案是每晚構建的,你可以從
https://master.dockerproject.org下載它們。要在多架構系統上安裝 docker,請在條目中新增[arch=...]子句。有關詳細資訊,請參閱 Debian Multiarch wiki 。
- 
執行以下命令,將佔位符 <REPO>的作業系統條目替換為。$ echo“”| sudo tee /etc/apt/sources.list.d/docker.list 
- 
通過執行 sudo apt-get update更新APT包索引。
- 
驗證 APT是否從正確的儲存庫中提取。
執行以下命令時,將為可供你安裝的每個版本的 Docker 返回一個條目。每個條目都應該有 URL https://apt.dockerproject.org/repo/。當前安裝的版本標有***。參見下面的示例輸出。
$ apt-cache policy docker-engine
  docker-engine:
    Installed: 1.12.2-0~trusty
    Candidate: 1.12.2-0~trusty
    Version table:
   *** 1.12.2-0~trusty 0
          500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
          100 /var/lib/dpkg/status
       1.12.1-0~trusty 0
          500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
       1.12.0-0~trusty 0
          500 https://apt.dockerproject.org/repo/ ubuntu-trusty/main amd64 Packages
從現在開始執行 apt-get upgrade,APT 從新的儲存庫中拉出來。
Ubuntu 版本的先決條件
對於 Ubuntu Trusty(14.04),Wily(15.10)和 Xenial(16.04),安裝 linux-image-extra-*核心軟體包,允許你使用 aufs 儲存驅動程式。
要安裝 linux-image-extra-*軟體包:
- 
在 Ubuntu 主機上開啟終端。 
- 
使用命令 sudo apt-get update更新包管理器。
- 
安裝推薦的軟體包。 $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
- 
繼續 Docker 安裝 
對於 Ubuntu Precise(12.04 LTS),Docker 需要 3.13 核心版本。如果你的核心版本低於 3.13,則必須升級它。請參閱此表以檢視你的環境所需的軟體包:
| 包 | 描述 | 
|---|---|
| linux-image-generic-lts-trusty | 通用 Linux 核心映像。這個核心內建了 AUFS。這是執行 Docker 所必需的。 | 
| linux-headers-generic-lts-trusty | 允許依賴於它們的 ZFS和VirtualBox guest additions等包。如果你沒有為現有核心安裝標頭,那麼你可以跳過trusty核心的這些標頭。如果你不確定,應該包括此包以確保安全。 | 
| xserver-xorg-lts-trusty | 在沒有 Unity / Xorg 的非圖形環境中可選。在具有圖形環境的計算機上執行 Docker 時需要。 | 
| ligbl1-mesa-glx-lts-trusty | 要了解有關這些程式包的原因的更多資訊,請閱讀 backported 核心的安裝說明,特別是 LTS Enablement Stack 。請參閱每個版本下的註釋 5。 | 
要升級核心並安裝其他軟體包,請執行以下操作:
- 
在 Ubuntu 主機上開啟終端。 
- 
使用命令 sudo apt-get update更新包管理器。
- 
安裝必需和可選包。 $ sudo apt-get install linux-image-generic-lts-trusty
- 
對需要安裝的其他軟體包重複此步驟。 
- 
使用命令 sudo reboot重新啟動主機以使用更新的核心。
- 
重啟後,繼續安裝 Docker。 
安裝最新版本
確保滿足先決條件,然後按照以下步驟操作。
注意: 對於生產系統,建議你安裝特定版本, 以免意外更新 Docker。你應該仔細規劃生產系統的升級。
- 
以具有 sudo許可權的使用者身份登入到你的 Ubuntu 安裝。 (可能執行sudo -su)。
- 
通過執行 sudo apt-get update更新你的 APT 包索引。
- 
使用命令 sudo apt-get install docker-engine安裝 Docker。
- 
使用命令 sudo service docker start啟動docker守護程式。
- 
通過執行 hello-world 映像驗證是否正確安裝了 docker。$ sudo docker run hello-world
此命令下載測試映像並在容器中執行它。當容器執行時,它會列印一條資訊性訊息並退出。
以非 root 使用者身份管理 Docker
如果你在使用 docker 命令時不想使用 sudo,請建立一個名為 docker 的 Unix 組並向其新增使用者。當 docker 守護程式啟動時,它會使 docker 組對 Unix 套接字的所有權進行讀/寫。
要建立 docker 組並新增你的使用者:
- 
以具有 sudo許可權的使用者身份登入 Ubuntu。
- 
使用命令 sudo groupadd docker建立docker組。
- 
將你的使用者新增到 docker組。$ sudo usermod -aG docker $USER
- 
登出並重新登入,以便重新評估你的組成員身份。 
- 
驗證你是否可以在沒有 sudo許可權的情況下使用docker命令。$ docker run hello-world
如果失敗,你將看到錯誤:
     Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?
檢查是否為 shell 設定了 DOCKER_HOST 環境變數。
    $ env | grep DOCKER_HOST
如果已設定,則上述命令將返回結果。如果是這樣,請取消設定。
    $ unset DOCKER_HOST
你可能需要在~/.bashrc 或~/.profile 等檔案中編輯環境,以防止錯誤地設定 DOCKER_HOST 變數。