从 CentOS 8 开始原生支持 Docker,可以直接通过 yum 安装和使用最新版 Docker CE;CentOS 7 需要启用 Extra Packages for Enterprise Linux(EPEL)仓库后,才可以安装 Docker;CentOS 6 不再官方支持 Docker 软件包,需要自己编译 Docker 安装。
前提条件
系统要求
要安装 Docker Engine,需要以下 CentOS 稳定版本:
- CentOS 7
- CentOS 8(stream)
- CentOS 9(stream)
centos-extras
必须启用存储库。默认情况下启用此存储库。如果您已禁用它,则需要重新启用它。
卸载旧版本
旧版本的 Docker 采用 docker
或 docker-engine
。在尝试安装新版本之前卸载任何此类旧版本以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
/var/lib/docker/
卸载 Docker 时,不会自动删除存储的镜像、容器、卷和网络,需要自行手动删除。
安装方法
您可以根据需要以不同的方式安装 Docker Engine:
- 您可以设置 Docker 的存储库并从中进行安装,以方便安装和升级任务。这是推荐的方法。
- 您可以下载 RPM 包, 手动安装,并完全手动管理升级。这对于在无法访问互联网的气隙系统上安装 Docker 等情况非常有用。
- 在测试和开发环境中,您可以使用自动化脚本来安装 Docker。
使用 rpm 存储库安装
在新主机上首次安装 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
安装 Docker Engine
第一步,安装 Docker Engine、containerd 和 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
<...>
返回的列表取决于启用的存储库,并且特定于您的 CentOS 版本(.el8
在本示例中由后缀表示)。
通过完全限定的包名称安装特定版本,即包名称(docker-ce
)加上版本字符串(第二列),并用连字符(-
)分隔。例如,docker-ce-3:24.0.0-1.el8
。
替换 <VERSION_STRING>
为所需的版本,然后运行以下命令进行安装:
sudo yum install docker-ce-VERSION_STRING docker-ce-cli-VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
第二步,启动 Docker。
sudo systemctl start docker
第三步,通过运行镜像来验证 Docker Engine 安装是否成功 hello-world
。
sudo docker run hello-world
此命令下载测试映像并在容器中运行它。当容器运行时,它会打印一条确认消息并退出。
配置 Docker 镜像源
由于官方默认的镜像源国内访问比较慢,需要额外配置国内镜像源。
首先,创建或修改 /etc/docker/daemon.json
文件,并写入以下内容:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
可用的国内镜像源有如下,可参考配置:
- 中国区官方镜像:https://registry.docker-cn.com
- 中科大源:https://docker.mirrors.ustc.edu.cn
- 阿里源:https://cr.console.aliyun.com
- 腾讯源:https://mirror.ccs.tencentyun.com
- 网易源:http://hub-mirror.c.163.com
其次,重启 docker:
sudo systemctl restart docker
再次,检查是否生效:
docker info
在返回信息最底下有如下信息则表示成功:
Registry Mirrors:
https://mirror.ccs.tencentyun.com
卸载 Docker Engine
卸载 Docker Engine、CLI、containerd 和 Docker Compose 软件包:
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
主机上的镜像、容器、卷或自定义配置文件不会自动删除。要删除所有镜像、容器和卷:
$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd