在CentOS 6.9系统中部署Docker需要特别注意版本兼容性与系统环境适配,CentOS 6.9作为较老的发行版,其默认内核版本(2.6-32.el6)与Docker的推荐运行环境存在一定差距,但通过合理的配置仍可实现基本功能,以下是详细的部署步骤与注意事项,帮助用户顺利完成Docker环境的搭建。

系统环境准备
在开始安装前,需确保系统满足最低要求:CentOS 6.9 Minimal Install(最小化安装),建议预留至少2GB内存,10GB可用磁盘空间,首先更新系统软件包:
sudo yum update -y sudo yum install -y epel-release
添加EPEL(Extra Packages for Enterprise Linux)源,这是获取Docker依赖包的关键,由于CentOS 6.9的官方源已停止维护,建议使用第三方维护的EPEL镜像源,如阿里云或清华大学的镜像源。
内核升级与依赖安装
CentOS 6.9默认内核版本过低,可能导致Docker容器运行不稳定,建议升级内核至3.10以上(Docker的最低要求版本):
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
修改GRUB引导顺序,将新内核设为默认启动项:
sudo sed -i 's/default=1/default=0/g' /etc/grub.conf sudo reboot
重启后验证内核版本:

uname -r
确保输出为3.10或更高版本,随后安装Docker所需的依赖包:
sudo yum install -y docker-io device-mapper-event-libs
Docker安装与配置
通过yum安装Docker:
sudo yum install -y docker
安装完成后,修改Docker服务配置文件/etc/sysconfig/docker,调整存储驱动与网络选项,CentOS 6.9推荐使用devicemapper存储驱动,需添加以下配置:
DOCKER_OPTS="--storage-driver=devicemapper --storage-opt dm.thinpooldev=/dev/mapper/docker-thinpool --storage-opt dm.use_deferred_removal=true"
创建thinpool逻辑卷(需提前划分LVM分区):
sudo lvcreate -L 10G -T vg00/docker-thinpool
启动Docker服务并设置开机自启:

sudo service docker start sudo chkconfig docker on
验证安装:
sudo docker run hello-world
若成功输出Hello from Docker信息,则表示安装完成。
常见问题与优化
- 存储驱动报错:若启动时提示
devicemapper相关错误,需检查逻辑卷是否正确创建,或尝试切换为overlay驱动(需内核3.18+)。 - 网络配置:CentOS 6.9默认防火墙(iptables)可能阻止Docker网络流量,需添加规则:
sudo iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -I FORWARD -s 172.16.0.0/12 -j ACCEPT sudo service iptables save
- 镜像加速:国内用户可配置镜像加速器,在
/etc/sysconfig/docker中添加:OTHER_ARGS="--registry-mirror=https://<mirror-url>"
安全与维护建议
- 定期更新Docker版本:通过
sudo yum update docker-io获取最新补丁。 - 限制容器资源使用:在运行容器时通过
--memory、--cpus`参数防止资源耗尽。 - 清理无用镜像与容器:定期执行
docker system prune -a释放磁盘空间。
FAQs
Q1: CentOS 6.9安装Docker后容器无法启动,提示“kernel too old”错误怎么办?
A: 该错误表明当前内核版本低于Docker的最低要求(3.10),需按前文步骤升级内核,或降级Docker版本至1.12(与CentOS 6.9兼容性较好),降级方法:
sudo yum install -y docker-io-1.12.6-71.el7.centos.x86_64 sudo service docker restart
Q2: Docker容器内无法访问外网,但宿主机可以正常上网?
A: 可能是iptables规则或SELinux导致,解决方案:
- 临时关闭SELinux测试:
sudo setenforce 0 - 添加iptables规则(如前文网络配置部分)
- 永久关闭SELinux(不推荐):修改
/etc/selinux/config中SELINUX=disabled后重启。
若问题仍存在,检查容器网络模式是否为默认的bridge,并尝试使用--network=host参数启动容器。