Skip to content

CentOS 7 安装 Docker CE #9

@LLLeon

Description

@LLLeon

之前在公司的云主机上安装过,今天在自己的阿里云 ECS 上安装,还得再去翻看官方文档,为了方便记录,对 官方文档 安装部分进行了简单翻译。

虽然就几条命令,也可以扩展并深入。里面也提到了比较底层的部分,比如存储驱动 overlay2,有兴趣可以深入一下。

先决条件

  1. 维护版的 CentOS 7。
  2. centos-extras 必须是激活状态。默认是激活的,如果被关闭了,需要重新激活
  3. 现在推荐使用的存储驱动是 overlay2,之前是 aufs

卸载旧版本

旧版本的 Docker 叫做 dockerdocker-engine。如果有安装它们,执行以下命令来卸载它及其依赖项:

$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

保留 /var/lib/docker/ 的内容,包括镜像、容器、卷 和网络。Docker CE 的包目前叫做 docker-ce

安装 Docker CE

有几种不同的安装方式,这里介绍如何使用库安装。安装这些库之后,可以从这些库来安装和更新 Docker。

设置库

  1. 安装所需包。

    yum-utils 提供 yum-config-manager 工具,devicemapper 存储驱动还需要 device-mapper-persistent-datalvm2

    $ sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
  2. 以下命令安装稳定版本。注意,任何时候都需要稳定版本库,即使想安装 edge 或 test 版本的 docker。

    $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
  3. 可选:激活 edge 和 test 库。它们包含在 docker.repo 中,默认是关闭的。可以与稳定库一起激活:

    $ sudo yum-config-manager --enable docker-ce-edge $ sudo yum-config-manager --enable docker-ce-test

    可以用以下命令关闭 edge 版本(用 --enable 来激活):

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

安装 Docker CE

  1. 安装最新版本:

    $ sudo yum install docker-ce

    如果提示接受 GPG 密钥,验证指纹是否匹配:060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,接受。

  2. 要安装指定版本的 Docker CE,在 repo 中列出可用版本,然后选择并安装:

    • 列出 repo 中可用的版本并进行排序。此示例按版本号对结果进行排序,从最高到最低,并截断:

      $ yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
    • 通过其完全限定的包名称安装特定版本,包名称(docker-ce)加上版本字符串(第2列),用连字符分隔:

      $ sudo yum install docker-ce-<VERSION STRING>

      Docker 安装好了,但没有启动,docker 组已经创建,但没有用户添加到组。

  3. 启动 Docker:

    $ sudo systemctl start docker
  4. 通过运行 hello-world 来验证是否正确安装:

    $ sudo docker run hello-world

    此命令下载测试镜像并在容器中运行它。当容器运行时,会打印一条消息并退出。

现在 Docker CE 已经安装好并运行了。

更新

按上面步骤,指定版本,再来一遍。

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions