Docker 在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文档(出于明显的原因,不建议这样做)。

Docker的APT存储库中存在Ubuntu Utopic 14.10和15.04,但由于已知的安全问题,不再受正式支持。

先决条件

  • 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. 使用sudo或root特权作为用户登录到您的计算机。

  2. 打开一个终端窗口。

  3. 更新程序包信息,确保APT与https方法一起使用,并且已安装CA证书。

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

  1. 添加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

  1. 在下表中找到与您的Ubuntu版本相对应的条目。这确定了APT将在哪里搜索Docker软件包。如果可能,请运行Ubuntu的长期支持(LTS)版本。

Ubuntu版本资料库
精确12.04(LTS)deb https://apt.dockerproject.org/repo ubuntu-precise main
可信赖的14.04(LTS)deb https://apt.dockerproject.org/repo ubuntu-trusty main
威力15.10deb 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. 运行以下命令,将您的操作系统的条目替换为placeholder <REPO>。

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

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

  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 upgrade,APT将从新的存储库中提取。

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允许诸如ZFS和VirtualBox guest additions依赖于它们的软件包。如果您没有为现有内核安装标头,则可以跳过这些标头trusty。如果不确定,则应包括此包装以确保安全。
xserver-xorg-lts-trusty在没有Unity / Xorg的非图形环境中是可选的。在具有图形环境的机器上运行Docker时需要
ligbl1-mesa-glx-lts-trusty要了解有关使用这些软件包的原因的更多信息,请阅读反向移植内核的安装说明,尤其是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. 通过运行更新APT软件包索引sudo apt-get update。

  3. 使用命令安装Docker Community Edition sudo apt-get install docker-ce。

  4. docker使用命令启动守护程序sudo service docker start。

  5. docker通过运行hello-world映像来验证是否已正确安装。

     $sudo docker run hello-world

此命令下载测试图像并在容器中运行它。容器运行时,它会打印参考消息并退出。

以非root用户身份管理Docker

如果sudo在使用docker命令时不想使用,请创建一个Unix组docker,并将其添加用户。当docker守护程序启动时,它使得读/由码头工人组可写的Unix套接字的所有权。

要创建docker组并添加您的用户,请执行以下操作:

  1. 以具有sudo特权的用户身份登录Ubuntu 。

  2. docker使用命令创建组sudo groupadd docker。

  3. 将您的用户添加到该docker组。

     $sudo usermod -aG docker $USER
  4. 注销并重新登录,以便重新评估您的组成员身份。

  5. 验证是否可以未经许可就docker命令sudo。

     $docker run hello-world

如果失败,您将看到一个错误:

     Cannot connect to the Docker daemon. Is 'docker daemon' running on this host?

检查是否DOCKER_HOST为您的外壳程序设置了环境变量。

    $ env | grep DOCKER_HOST

如果已设置,则上述命令将返回结果。如果是这样,请取消设置。

    $ unset DOCKER_HOST

您可能需要在诸如~/.bashrc或的文件中编辑环境,~/.profile以防止DOCKER_HOST错误设置变量。