Docker在CentOS上需手动安装,必须卸载旧版、安装docker-ce-cli和containerd.io、配置阿里云镜像源,并验证docker info及docker run hello-world成功。

docker 在 CentOS 上不是开箱即用的,必须手动安装。官方已停止对 CentOS 7/8 的长期支持,但只要系统满足最低要求(64 位、内核 ≥3.10),仍可稳定运行 docker-ce。关键在于选对源、装全组件、避开旧包冲突。
卸载残留的 docker 或 docker-engine
CentOS 自带的 docker(非 CE 版)和早期手动安装的 docker-engine 会与 docker-ce 冲突,导致 systemctl start docker 失败或 docker version 报错 “Client version mismatch”。
- 执行
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine - 删掉残留数据(可选但推荐):
rm -rf /var/lib/docker /var/lib/containerd - 注意:
yum remove不会报错即使某些包未安装,这是正常行为
必须安装 docker-ce-cli 和 containerd.io
只装 docker-ce 是不够的——它不自带 CLI 工具,也不包含底层运行时。缺少 docker-ce-cli 会导致命令如 docker ps 直接报 “command not found”;缺少 containerd.io 则启动服务时卡在 Starting Docker Application Container Engine...,systemctl status docker 显示 failed。
- 正确安装命令:
yum install -y docker-ce docker-ce-cli containerd.io - 不要用
yum install docker——那是旧版,已被弃用 -
containerd.io必须从 Docker 官方源或阿里云镜像源安装,不能用系统默认 repo 的版本(太旧)
配置国内镜像源避免超时失败
直接用官方源 https://download.docker.com/linux/centos/docker-ce.repo 在国内大概率 yum makecache fast 卡住或报 “Could not download metalink”,最终 yum install 失败。
- 推荐替换为阿里云源:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo - 执行前确保已装
yum-utils:yum install -y yum-utils - 添加后务必运行
yum makecache fast,否则yum install找不到包 - 如果提示
command not found,说明yum-utils没装,不是命令写错
启动失败常见原因和验证要点
systemctl start docker 成功不代表真可用。docker run hello-world 报错 “Cannot connect to the Docker daemon” 或 “Permission denied” 是最常被忽略的环节。
- 确认服务状态:
systemctl status docker→ 必须看到active (running) - 检查 socket 权限:
ls -l /var/run/docker.sock→ 应属root:docker,普通用户需加入docker组才能免sudo - 验证运行时:
sudo docker info | grep "containerd"→ 确保显示containerd版本,否则containerd.io没生效 - 首次拉镜像慢是正常的,但
docker pull nginx卡在 “Waiting” 超过 2 分钟,基本是镜像源没配对
docker 用户组就直接跑容器,或者以为 docker version 有输出就算装好了。其实 docker version 只查客户端,docker info 才验服务端和运行时是否连通。


















