在 Ubuntu Linux 上安装 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 \
    curl \
    software-properties-common
- 
添加 Docker 的官方 GPG 密钥: $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -验证密钥指纹是否为 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 。 $ sudo apt-key fingerprint 0EBFCD88
        pub   4096R/0EBFCD88 2017-02-22
              Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
        uid                  Docker Release (CE deb) <docker@docker.com>
        sub   4096R/F273FCD8 2017-02-22
- 在下表中找到与你的 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-ce安装 Docker Community Edition。
- 
使用命令 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 变量。