Centos 7 安装 Docker Enginee

Centos 安装 Docker Enginee

要在 Centos 安装 Docker Enginee,需要满足以下要求:

系统要求

  • CentOS 7
  • CentOS 8 (stream)
  • CentOS 9 (stream)

另外,必须要启用 centos-extra 仓库。此仓库默认是启用的,如果你曾经禁用过,可以使用如下命令启用:

yum install epel-release

卸载旧版本

使用以下命令卸载旧版本:

sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine

如果没有这些旧的包,yum 可能会提示你如下内容,跳过即可。
No Match for argument: docker
No Match for argument: docker-client
No Match for argument: docker-client-latest
No Match for argument: docker-common
No Match for argument: docker-latest
No Match for argument: docker-latest-logrotate
No Match for argument: docker-logrotate
No Match for argument: docker-engine
No Packages marked for removal

清除存储在 /var/lib/docker/ 目录下的旧数据,因为上面的操作不会自动移除这些内容。

有如下三种方式安装 Docker Enginee,你可以根据需要选择其中一个:

  • (推荐)使用 Docker 的 Yum 仓库安装
  • 下载 RPM 软件包然后手动安装,常用于无法联网的系统
  • 在开发和测试环境,使用自动化安装脚本安装 Docker Enginee

使用 RPM 仓库

如果你是第一次在你正在使用的机器上安装 Docker,需要先设置 Docker 仓库。

设置 Docker 仓库

安装 yum-utils 包,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

安装 Docker Enginee

  1. 安装 Docker Engine, containerd, and Docker Compose:

    最新版

    如果要安装最新版,直接执行以下命令即可:

    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    

    指定版本

    要安装指定版本,需要查询版本:

    yum list docker-ce --showduplicates | sort -r
    
    docker-ce.x86_64    3:24.0.0-1.el8    docker-ce-stable
    docker-ce.x86_64    3:23.0.6-1.el8    docker-ce-stable
    <...>
    

    接着安装指定版本的软件包:

    sudo yum install docker-ce-24.0.6-1.el8 docker-ce-cli-24.0.6-1.el8 containerd.io docker-buildx-plugin docker-compose-plugin
    

    解释一下 yum list docker-ce --showduplicates | sort -r 命令的结果:
    第一列是软件包的名称加上支持的处理器的位数,以英文点号 . 分隔
    第二列是软件包的版本
    拼接方式
    软件包名称 + - + 版本,例:docker-ce-24.0.6-1.el8
    注意
    官网说明是软件包名拼接上版本就是要安装指定版本的软件包,但经测试有时(对于 Docker、Nginx,其他软件未尝试。)会失败;比如安装 Docker 后启动 Docker 服务时会提示 Unit docker.service could not be found 等类似的错误。
    解决方式
    拼接第二列的版本时,如果版本中有冒号,只需要拼接冒号后面的内容作为版本号

  2. 启动 Docker

    sudo systemctl start docker
    
  3. 通过 hello-world 镜像验证 Docker 是否安装成功:

    sudo docker run hello-world
    

    此命令将下载 hello-world 镜像并启动一个容器。容器启动后将打印一行信息并退出。

升级 Docker Enginee

升级的方式同 安装 Docker Enginee ,只需要选择一个更新的版本来安装即可。

卸载 Docker

  1. 卸载 Docker Enginee、Docker Cli、containerd 和 Docker Compose:

    sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
    
  2. 镜像、容器以及卷不会自动删除,需要执行以下命令来删除它们:

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