安装Docker

引用自《Docker系列教程02-Docker安装》- 周立

Ubuntu

系统要求

  • Docker支持以下版本的Ubuntu,要求64位。

    • Bionic Beaver 18.04 (LTS)
    • Zesty 17.04
    • Xenial 16.04 (LTS)
    • Trusty 14.04 (LTS)
  • 支持运行的平台:x86_64armhfs390x(IBM Z)。其中,如选择IBM Z,那么只支持Ubuntu Xenial以及Zesty。

  • 本文使用Ubuntu 16.04 LTS,下载地址:http://cn.ubuntu.com/download/

安装步骤

  1. 卸载老版本Docker

在Ubuntu中,老版本的软件包名称是 docker 或者 docker-engine ,而Docker CE的软件包名称是 docker-ce。因此,如已安装过老版本的Docker,需要先卸载掉。执行以下命令,即可卸载老版本的Docker及其依赖。

1
sudo apt-get remove docker docker-engine docker.io

需要注意的是,执行该命令只会卸载Docker本身,而不会删除Docker内容,例如镜像、容器、卷以及网络。这些文件保存在 /var/lib/docker 目录中,需要手动删除。

  1. Ubuntu Trusty 14.04 额外建议安装的包

除非你有不得已的苦衷,否则强烈建议安装 linux-image-extra-* 软件包,以便于Docker使用 aufs 存储驱动。执行如下命令,即可安装 linux-image-extra-*

1
2
3
4
sudo apt-get update
sudo apt-get install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual

对于Ubuntu 16.04或更高版本,Linux内核包含了对OverlayFS的支持,Docker CE默认会使用 overlay2 存储驱动。

  1. 安装仓库

    • 执行如下命令,更新 apt 的包索引。

      1
      sudo apt-get update
    • 执行如下命令,从而允许 apt 使用HTTPS仓库。

      1
      2
      3
      4
      5
      sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      software-properties-common
    • 添加Docker官方的GPG key

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

      确认指纹是9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 。

      1
      sudo apt-key fingerprint 0EBFCD88
    • 执行如下命令,安装 stable 仓库。无论如何都必须安装 stable 仓库,即使你想安装 edgetest 仓库中的Docker构建。如需添加 edgetest 仓库,可在如下命令中的“stable” 后,添加 edgetest 或两者。请视自己Ubuntu所运行的平台来执行如下命令。
      NOTE:如下命令中的 lsb_release -cs 子命令用于返回您Ubuntu的发行版名称,例如 xenial 。有时,在例如Linux Mint这样的发行版中,您可能需要将如下命令中的 $(lsb_release -cs) 更改为系统的父级Ubuntu发行版。例如,如果您使用的是Linux Mint Rafaela,则可以使用 trusty

      • amd64

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

        1
        2
        3
        4
        $ sudo add-apt-repository \
        "deb [arch=armhf] https://download.docker.com/linux/ubuntu \
        $(lsb_release -cs) \
        stable"
      • s390x

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

      NOTE: 从Docker 17.06起,stable版本也会发布到edge以及test仓库中。

  2. 安装Docker CE

    • 执行如下命令,更新 apt 包索引。

      1
      sudo apt-get update
    • 执行如下命令,即可安装最新版本的Docker CE。任何已存在的Docker将会被覆盖安装。

      1
      sudo apt-get install docker-ce

      WARNING: 如启用了多个Docker仓库,使用命令apt-get install 或apt-get update 命令安装或升级时,如未指定版本,那么将会安装最新的版本。这可能不适合您的稳定性要求。

    • 在生产环境中,我们可能需要指定想要安装的版本,此时可使用如下命令列出当前可用的Docker版本。

      1
      apt-cache madison docker-ce

      这样,列出版本后,可使用如下命令,安装想要安装的Docker CE版本。

      1
      sudo apt-get install docker-ce=<VERSION>

      Docker daemon会自动启动。

    • 验证安装是否正确。

      1
      sudo docker run hello-world
  3. 升级Docker CE

如需升级Docker CE,只需执行如下命令:

1
sudo apt-get update

然后按照安装Docker的步骤,即可升级Docker。

  1. 参考文档

Ubuntu安装Docker官方文档:https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/ ,文档还讲解了在Ubuntu中安装Docker CE的其他方式,本文不作赘述。

CentOS7

系统要求

yum安装

  1. 卸载老版本的Docker

在CentOS中,老版本Docker名称是 dockerdocker-engine,而Docker CE的软件包名称是 docker-ce。因此,如已安装过老版本的Docker,需使用如下命令卸载。

1
2
3
4
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine

需要注意的是,执行该命令只会卸载Docker本身,而不会删除Docker存储的文件,例如镜像、容器、卷以及网络文件等。这些文件保存在 /var/lib/docker 目录中,需要手动删除。

  1. 安装仓库

    • 执行以下命令,安装Docker所需的包。其中,yum-utils提供了 yum-config-manager 工具;device-mapper-persistent-datalvm2 则是 devicemapper 存储驱动所需的包。

      1
      sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    • 执行如下命令,安装 stable 仓库。必须安装 stable 仓库,即使你想安装 edgetest 仓库中的Docker构建版本。

      1
      2
      3
      sudo yum-config-manager \
      --add-repo \
      https://download.docker.com/linux/centos/docker-ce.repo
    • [可选] 执行如下命令,启用 edgetest 仓库。edge/test仓库其实也包含在了 docker.repo 文件中,但默认是禁用的,可使用以下命令来启用。

      1
      2
      sudo yum-config-manager --enable docker-ce-edge    # 启用edge仓库
      sudo yum-config-manager --enable docker-ce-test # 启用test仓库

      如需再次禁用,可加上 --disable 标签。例如,执行如下命令即可禁用edge仓库。

      1
      sudo yum-config-manager --disable docker-ce-edge

      TIPS: 从Docker 17.06起,stable版本也会发布到edge以及test仓库中。

  2. 安装Docker CE

    • 执行以下命令,更新yum的包索引

      1
      sudo yum makecache fast
    • 执行如下命令即可安装最新版本的Docker CE

      1
      sudo yum install docker-ce
    • 在生产环境中,可能需要指定想要安装的版本,此时可使用如下命令列出当前可用的Docker版本。

      1
      yum list docker-ce.x86_64  --showduplicates | sort -r

      这样,列出版本后,可使用如下命令,安装想要安装的Docker CE版本。

      1
      sudo yum install docker-ce-<VERSION>
    • 启动Docker

      1
      sudo systemctl start docker
    • 验证安装是否正确。

      1
      sudo docker run hello-world

      这样,Docker将会下载测试镜像,并使用该镜像启动一个容器。如能够看到类似如下的输出,则说明安装成功。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      Unable to find image 'hello-world:latest' locally
      latest: Pulling from library/hello-world
      b04784fba78d: Pull complete
      Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
      Status: Downloaded newer image for hello-world:latest
      Hello from Docker!
      This message shows that your installation appears to be working correctly.
      To generate this message, Docker took the following steps:
      1. The Docker client contacted the Docker daemon.
      2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
      3. The Docker daemon created a new container from that image which runs the
      executable that produces the output you are currently reading.
      4. The Docker daemon streamed that output to the Docker client, which sent it
      to your terminal.
      To try something more ambitious, you can run an Ubuntu container with:
      $ docker run -it ubuntu bash
      Share images, automate workflows, and more with a free Docker ID:
      https://cloud.docker.com/
      For more examples and ideas, visit:
      https://docs.docker.com/engine/userguide/
  3. 升级Docker CE

如需升级Docker CE,只需执行如下命令:

1
sudo yum makecache fast

然后按照安装Docker的步骤,即可升级Docker。

  1. 参考文档

CentOS 7安装Docker官方文档:https://docs.docker.com/engine/installation/linux/docker-ce/centos/,文档中还讲解了在CentOS 7中安装Docker CE的其他方式,本文不作赘述。

shell一键安装

1
2
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh

搞定一切。

MacOS

系统要求

macOS Yosemite 10.10.3或更高版本

安装步骤

  1. 前往https://store.docker.com/editions/community/docker-ce-desktop-mac,点击页面右侧的“Get Docker”按钮,下载安装包;

  2. 双击即可安装。

Windows

系统要求

Windows 10 Professional 或 Windows 10 Enterprise X64

对于Win 7,可使用Docker Toolbox(不建议使用)

安装步骤

  1. 前往https://store.docker.com/editions/community/docker-ce-desktop-windows,点击页面右侧的“Get Docker”按钮,下载安装包;

  2. 双击即可安装。