在 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 儲存庫訪問包。

  1. 使用 sudoroot 許可權以使用者身份登入計算機。
  2. 開啟終端視窗。
  3. 更新程式包資訊,確保 APT 與 https 方法一起使用,並且已安裝 CA 證書。
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
  1. 新增新的 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
    
  2. 在下表中找到與你的 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

  1. 執行以下命令,將佔位符 <REPO> 的作業系統條目替換為。

    $ echo“”| sudo tee /etc/apt/sources.list.d/docker.list

  2. 通過執行 sudo apt-get update 更新 APT 包索引。

  3. 驗證 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 upgradeAPT 從新的儲存庫中拉出來。

Ubuntu 版本的先決條件

對於 Ubuntu Trusty(14.04),Wily(15.10)和 Xenial(16.04),安裝 linux-image-extra-*核心軟體包,允許你使用 aufs 儲存驅動程式。

要安裝 linux-image-extra-*軟體包:

  1. 在 Ubuntu 主機上開啟終端。

  2. 使用命令 sudo apt-get update 更新包管理器。

  3. 安裝推薦的軟體包。

    $ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
    
  4. 繼續 Docker 安裝

對於 Ubuntu Precise(12.04 LTS),Docker 需要 3.13 核心版本。如果你的核心版本低於 3.13,則必須升級它。請參閱此表以檢視你的環境所需的軟體包:

描述
linux-image-generic-lts-trusty 通用 Linux 核心映像。這個核心內建了 AUFS。這是執行 Docker 所必需的。
linux-headers-generic-lts-trusty 允許依賴於它們的 ZFSVirtualBox guest additions 等包。如果你沒有為現有核心安裝標頭,那麼你可以跳過 trusty 核心的這些標頭。如果你不確定,應該包括此包以確保安全。
xserver-xorg-lts-trusty 在沒有 Unity / Xorg 的非圖形環境中可選。在具有圖形環境的計算機上執行 Docker 時需要
ligbl1-mesa-glx-lts-trusty 要了解有關這些程式包的原因的更多資訊,請閱讀 backported 核心的安裝說明,特別是 LTS Enablement Stack 。請參閱每個版本下的註釋 5。

要升級核心並安裝其他軟體包,請執行以下操作:

  1. 在 Ubuntu 主機上開啟終端。

  2. 使用命令 sudo apt-get update 更新包管理器。

  3. 安裝必需和可選包。

    $ sudo apt-get install linux-image-generic-lts-trusty
    
  4. 對需要安裝的其他軟體包重複此步驟。

  5. 使用命令 sudo reboot 重新啟動主機以使用更新的核心。

  6. 重啟後,繼續安裝 Docker。

安裝最新版本

確保滿足先決條件,然後按照以下步驟操作。

注意: 對於生產系統,建議你安裝特定版本, 以免意外更新 Docker。你應該仔細規劃生產系統的升級。

  1. 以具有 sudo 許可權的使用者身份登入到你的 Ubuntu 安裝。 (可能執行 sudo -su)。

  2. 通過執行 sudo apt-get update 更新你的 APT 包索引。

  3. 使用命令 sudo apt-get install docker-engine 安裝 Docker。

  4. 使用命令 sudo service docker start 啟動 docker 守護程式。

  5. 通過執行 hello-world 映像驗證是否正確安裝了 docker

     $ sudo docker run hello-world
    

此命令下載測試映像並在容器中執行它。當容器執行時,它會列印一條資訊性訊息並退出。

以非 root 使用者身份管理 Docker

如果你在使用 docker 命令時不想使用 sudo,請建立一個名為 docker 的 Unix 組並向其新增使用者。當 docker 守護程式啟動時,它會使 docker 組對 Unix 套接字的所有權進行讀/寫。

要建立 docker 組並新增你的使用者:

  1. 以具有 sudo 許可權的使用者身份登入 Ubuntu。

  2. 使用命令 sudo groupadd docker 建立 docker 組。

  3. 將你的使用者新增到 docker 組。

     $ sudo usermod -aG docker $USER
    
  4. 登出並重新登入,以便重新評估你的組成員身份。

  5. 驗證你是否可以在沒有 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 變數。