docker 安装

2 minute read

本文记录在 CentOS 上安装 Docker 引擎,其他平台请查看官方安装文档

安装方法

可以根据需要以不同的方式安装 Docker Engine:

  • 设置 Docker 存储库并从中安装,以便于安装和升级任务(推荐
  • 下载 RPM 包并手动安装它并完全手动管理升级(适用于无法访问外网的环境)
  • 使用自动化安装脚本来安装 Docker(推荐在测试和开发环境中使用)

使用存储库安装

在新主机上首次安装 Docker Engine 之前,您需要设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。

设置存储库

安装 yum-utils 软件包,它提供 yum-config-manager 实用程序

$ sudo yum install -y yum-utils

设置存储库

  • 官方源

    $ sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo
    
  • 阿里源

    $ sudo yum-config-manager \
        --add-repo \
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

安装 Docker Engine

安装最新版本

默认安装最新的稳定版本的 Docker

$ sudo yum makecache fast
$ sudo yum install docker-ce -y

安装指定版本

  1. 查找存储库中可用的版本

    $ yum list docker-ce --showduplicates | sort -r
    docker-ce.x86_64            3:20.10.3-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:20.10.2-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:20.10.17-3.el7                    docker-ce-stable
    docker-ce.x86_64            3:20.10.16-3.el7                    docker-ce-stable
    ...
    
  2. 安装指定版本

    通过其完全限定的包名称安装特定版本:sudo yum install docker-ce-<VERSION_STRING>

    <VERSION_STRING> 为版本字符串(第 2 列),从第一个冒号 (:) 开始,直到第一个连字符 (-) 。

    例如,docker-ce-20.10.16

    # $ sudo yum install docker-ce-<VERSION_STRING>
    $ sudo yum install docker-ce-20.10.16
    

测试版本

官方软件源默认启用了最新的软件,可以通过编辑软件源的方式获取各个版本的软件包。

例如官方并没有将测试版本的软件源置为可用,可以通过以下方式开启。同理可以开启各种测试版本等。

$ sudo vi /etc/yum.repos.d/docker-ce.repo
# 将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1

启动 Docker

加入开机启动并启动 docker

$ sudo systemctl enable docker --now

安装验证

查看 Docker 版本信息

# sudo docker --version
$ sudo docker -v
Docker version 20.10.17, build 100c701

$ docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:03:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

通过运行 hello-world 映像来验证 Docker 引擎是否已正确安装

$ sudo docker run hello-world

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

使用 RPM 包安装

如果无法使用 Docker 的存储库来安装 Docker,则可以下载对应版本的 .rpm 文件并手动安装。每次升级 Docker Engine 时都需要下载一个新文件。

  1. 下载 .rpm 文件

    $ sudo wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-20.10.17-3.el7.x86_64.rpm
    # 依赖
    $ sudo wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.6.6-3.1.el7.x86_64.rpm
    $ sudo wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-20.10.17-3.el7.x86_64.rpm
    $ sudo wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-rootless-extras-20.10.17-3.el7.x86_64.rpm
    $ sudo wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-scan-plugin-0.17.0-3.el7.x86_64.rpm
    
  2. 安装 Docker Engine

    $ sudo yum localinstall *.rpm -y
    
  3. 启动 Docker

    # 启动并加入开机启动
    $ systemctl enable docker --now
    
  4. 安装验证

    # sudo docker version
    # sudo docker --version
    $ sudo docker -v
    $ sudo docker run hello-world
    

使用脚本安装

Docker 在 get.docker.com 上提供了一个方便的脚本,可以快速、非交互地将 Docker 安装到开发环境中。不建议将脚本用于生产环境。该脚本的源代码是开源的,可以在 GitHub 上的 docker-install 存储库中找到。

Tip:运行前预览脚本步骤

可以使用 DRY_RUN=1 选项运行脚本,以了解脚本在安装期间将执行的步骤:

$ curl -fsSL https://get.docker.com -o get-docker.sh
#$ sudo sh get-docker.sh
$ DRY_RUN=1 sh ./get-docker.sh

安装最新的稳定版本的 Docker

$ curl -fsSL https://get.docker.com | sh
# Executing docker install script, commit: b2e29ef7a9a89840d2333637f7d1900a83e7153f
<...>

使用阿里 Docker CE 镜像源站

$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

Docker 的 安装资源文件 存放在Amazon S3,会间歇性连接失败。所以安装Docker的时候,会比较慢。 可以通过 DaCloud 提供的安装资源文件(就是 Docker 提供的那个安装脚本),高速安装Docker。

$ curl -sSL https://get.daocloud.io/docker | sh
$ curl -sSL https://get.daocloud.io/docker | bash -s docker --mirror Aliyun

适用于 Ubuntu,Debian,Centos 等大部分 Linux,会3小时同步一次 Docker 官方资源。

安装预发行版

Docker 官网脚本

$ curl -fsSL https://test.docker.com -o test-docker.sh
$ sudo sh test-docker.sh
<...>

DaCloud 提供的脚本

$ curl -sSL https://get.daocloud.io/docker-experimental | sh

# 拷贝的 Docker 官网脚本
$ curl -sSL https://get.daocloud.io/docker-test | sh

如果安装不成功,可以选择使用二进制包安装方式。 下载二进制包

卸载 Docker

卸载 Docker Engine、CLI、Containerd 等软件包

$ sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷:

$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd

安装 Docker Compose

使用存储库安装

设置存储库请参考前面的设置存储库

$ sudo yum install docker-compose-plugin -y
$ docker compose version
Docker Compose version v2.6.0

二进制安装

Docker Compose 存放在 Git Hub,不太稳定。 可以也通过执行下面的命令,高速安装 Docker Compose

$ curl -L https://get.daocloud.io/docker/compose/releases/download/v2.6.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

可以通过修改URL中的版本,可以自定义您的需要的版本。