CentOS与Docker如何兼容
小樊
39
2025-12-17 10:08:55
CentOS 与 Docker 的兼容性实践指南
一 支持范围与系统要求
- 支持的主流版本为 CentOS 7/8(x86_64),需 64 位系统。Docker 对内核有硬性要求:建议 Linux 内核 ≥ 3.10;在 CentOS 7 上常见默认内核为 3.x,通常可运行,但为获得更好的稳定性与特性(如更好的 overlay2 支持),建议升级至 4.x 内核。生产环境优先选用固定稳定版 Docker,避免频繁升级带来不确定性。
二 标准安装步骤(在线)
- 卸载旧版本(如有):
sudo yum remove -y docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
- 安装依赖:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加仓库(官方或国内镜像源):
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(可指定版本):
sudo yum install -y docker-ce docker-ce-cli containerd.io
查看可安装版本:yum list docker-ce --showduplicates | sort -r
安装指定版本:sudo yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
- 启动并设为开机自启:
sudo systemctl start docker && sudo systemctl enable docker
- 验证:
docker version
sudo docker run --rm hello-world
三 兼容性与稳定性配置
- 存储驱动:优先使用 overlay2(性能与稳定性更佳)。在 /etc/docker/daemon.json 中设置:
{
“storage-driver”: “overlay2”
}
- 镜像加速(国内环境强烈建议):
{
“registry-mirrors”: [
“https://<YOUR_MIRROR_URL>”,
“https://mirror.baidubce.com”
]
}
修改后执行:sudo systemctl daemon-reload && sudo systemctl restart docker
- 代理配置(如存在企业代理):
- 守护进程级:在 /etc/systemd/system/docker.service.d/http-proxy.conf 中添加
[Service]
Environment=“HTTP_PROXY=http://proxy.example.com:8080”
Environment=“HTTPS_PROXY=http://proxy.example.com:8080”
Environment=“NO_PROXY=localhost,127.0.0.1,.example.com”
然后:sudo systemctl daemon-reload && sudo systemctl restart docker
- SELinux 与防火墙:
- 挂载目录权限问题可临时使用容器运行参数 –privileged(不推荐长期),更优做法是按需配置 SELinux 布尔值或上下文;
- 与 firewalld/iptables 的端口放行与转发需按实际网络策略配置,避免粗暴关闭防火墙。
四 常见问题与快速排查
- 服务无法启动:
- 查看状态:systemctl status docker
- 查看日志:journalctl -u docker --no-pager -n 100
- 常见原因:存储驱动不兼容、配置错误、端口冲突、代理不可达等,按日志逐项修复后重启服务。
- 内核或性能问题:
- 在 CentOS 7 上若遇到异常或性能不佳,优先升级至 4.x 内核并启用 overlay2。
- 版本选择与回退:
- 如遇兼容性问题,使用 yum 列出可用版本并回退到已验证的稳定版本:
yum list docker-ce --showduplicates | sort -r
sudo yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
- 离线环境:
- 在一台可联网机器下载 docker-ce/containerd.io 等 RPM 包及依赖,拷贝至目标机后执行:
sudo yum localinstall -y /path/to/*.rpm
然后启动服务并验证。