CentOS 7.6 安装 Docker 这事,网上教程一抓一大把,但说实话,多数教程就是让你直接yum install docker,装上就完事了。真正到了生产环境,你会发现事情没那么简单:内核版本够不够格、yum 源用的是官方还是国内镜像、装完之后容器起不来怎么排查、镜像加速到底配哪个……这些细节不搞清楚,装完也是带病上路。
我自己在维护那几台 CentOS 7.6 服务器时踩过不少坑,也帮同事处理过好几次"装上 Docker 但跑不起来"的问题。这篇就把完整流程和踩坑经验一次性讲清楚,从安装前的系统体检到日常维护、升级策略都覆盖到。适合刚入门的小白照着一步步操作,也适合已经在用但想排查问题、优化配置的朋友直接跳到对应章节。
1. 安装前的系统体检:内核版本、依赖与网络环境
1.1 先确认系统和内核版本
很多人装 Docker 之前根本不看内核版本,装上之后各种问题,回头还怪 Docker 不稳定。CentOS 7.6 默认内核是 3.10.0-957,这个版本其实已经能满足 Docker 的基本要求——Docker 官方要求 CentOS 7 的内核最低是 3.10。但这里有个容易被忽略的细节:内核版本和内核模块、驱动之间有连带关系,检查的时候不能只看大版本号,还要看有没有 overlayfs、iptables 相关的模块。
我建议在动手之前,先把这几条命令跑一遍:
cat /etc/centos-release uname -r输出结果示例:
CentOS Linux release 7.6.1810 (Core) 3.10.0-957.el7.x86_64如果uname -r显示的内核版本低于 3.10.0-957,说明系统内核可能被降级过或者装的是精简版系统,先解决内核问题再来装 Docker。还有一种情况是 CentOS 7.6 跑在虚拟机里,比如某云主机或者虚拟化平台,这种情况下内核来自宿主机的虚拟化驱动配合,大概率没问题,但建议顺手确认下:
cat /proc/filesystems | grep overlayfs没有输出也没关系,Docker 安装过程中会自动加载需要的模块。这一步只是心里有个底,知道自己的系统处于什么状态。
1.2 检查网络与 DNS 配置
Docker 安装和运行都要联网拉取镜像,yum 安装包也需要从配置的仓库下载。网络问题的排查通常比你想的更频繁。检查网络时别只看能不能 ping 通外网,要实测一下仓库域名能不能解析、能不能连通:
ping -c 3 aliyuncs.com curl -I https://mirrors.aliyun.com/docker-ce/我遇到过一种情况:服务器能上外网,但解析download.docker.com特别慢,偶尔还超时。这是因为部分云环境或者企业内网的 DNS 对境外域名解析不稳定。这时候要么改 DNS,要么直接换国内镜像源——后者通常更省事,后面会详细讲。
另外,检查一下 SELinux 和防火墙状态。SELinux 对 Docker 的影响经常被忽略,CentOS 7 上 Docker 对 SELinux 的兼容已经算不错了,官方推荐是保持 SELinux 开启,但如果你对 SELinux 不熟悉,生产环境又急着用,可以先临时设为 permissive 再装。防火墙方面,如果用默认的 firewalld,装完 Docker 之后要放行容器的端口映射范围,或者至少放行常用端口:
systemctl status firewalld getenforce这两条命令确认状态就够了,不用急着改,后面遇到具体问题再对症处理。
1.3 清理历史残留版本
如果这台机器之前装过 Docker 或者类似容器运行时,一定要先清理干净再重装,否则很容易出现二进