
大家好,我是刘叨叨,一个致力于让碎片化技术系统性的运维人。
前面的文章我们聊透了Docker的架构,现在该让它真正落地了。在生产环境安装Docker,看似简单的一条命令,实则暗藏不少关键决策点。今天,我就以最主流的CentOS/RHEL/Rocky Linux为例,带你走通生产级的安装与配置全流程。
正式动手前,花2分钟完成下面检查,能规避多数环境问题。
1️⃣ 内核版本检查
Docker需要Linux内核3.10以上,建议4.x以上以获得更佳性能与功能支持。
uname -r
# 输出类似:3.10.0-1160.el7.x86_64 (CentOS 7)2️⃣ 存储驱动支持检查
确认内核支持 overlay2,这是现代Docker的首选存储驱动。
lsmod | grep overlay
# 有输出即表示支持如无输出,对于CentOS 7,建议升级内核至长期支持版本以获得稳定支持。
以下为生产环境验证过的完整安装步骤,关键在于使用官方软件源。
# ✅ 步骤1:卸载旧版本(新系统可跳过,但执行无害)
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# ✅ 步骤2:安装基础依赖工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# ✅ 步骤3:【关键】添加Docker官方CE版稳定源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# ✅ 步骤4:安装Docker引擎及其组件
sudo yum install -y docker-ce docker-ce-cli containerd.io
# ✅ 步骤5:启动服务并设为开机自启
sudo systemctl start docker
sudo systemctl enable docker安装完成后,必须进行针对性配置,以适应生产环境需求。
对于国内服务器,配置镜像加速器是必要步骤。直接连接Docker Hub速度慢且不稳定。以下是经最新验证可用的加速地址:
镜像加速地址 | 运营方 | 特点与说明 |
|---|---|---|
轩辕镜像 (免费版) | 通用推荐,无需登录。 | |
中国科学技术大学 (USTC) | 经典高校源,历史悠久,稳定性有保障。 | |
腾讯云 | 限制性使用,仅推荐在腾讯云服务器内部使用。 | |
https://<你的ID>.mirror.aliyuncs.com | 阿里云 | 专属地址,适用于阿里云ECS用户,需登录控制台获取专属地址。 |
编辑Docker守护进程的主配置文件 /etc/docker/daemon.json(若不存在则创建):
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.xuanyuan.me",
"https://docker.mirrors.ustc.edu.cn"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
EOF配置项精讲:
registry-mirrors:镜像加速器地址。建议配置1-2个,Docker会按顺序尝试。exec-opts:生产环境关键。指定使用 systemd 作为cgroup驱动。log-driver 与 log-opts:生产环境强烈建议配置。用于限制单个容器日志文件的大小和数量,防止日志写满磁盘。storage-driver:存储驱动。设置为 overlay2。💡 关于 Overlay2
overlay2 是现代Linux内核支持的联合文件系统驱动,是Docker的默认和推荐选择。相比旧的 devicemapper 驱动,它具有以下显著优势:
在启动容器时,你可能会遇到关于IPv4转发和bridge-nf调用的警告。这些警告表明网络功能未完全启用,可能影响容器网络通信。
WARNING: IPv4 forwarding is disabled
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled解决方案:一次性启用所需的内核参数
# 创建或修改sysctl配置文件,永久启用参数
sudo tee /etc/sysctl.d/99-docker.conf <<-'EOF'
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
# 立即应用配置(无需重启)
sudo sysctl -p /etc/sysctl.d/99-docker.conf
# 验证设置已生效
sysctl net.ipv4.ip_forward net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables
# 应全部输出为 1# 重启Docker服务使所有配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
# 全面验证安装与配置
docker info | grep -E "Registry Mirrors|Cgroup Driver|Storage Driver|Kernel Version"
# 应显示你配置的加速器地址、systemd驱动、overlay2驱动以及内核版本运行一个测试容器,确保从拉取到运行的整个链条通畅。
# 拉取一个极小的测试镜像(此时应通过加速器)
docker pull hello-world
# 运行测试容器(--rm 参数表示容器退出后自动清理)
docker run --rm hello-world
# 看到 “Hello from Docker!” 即表示大功告成生产环境快速健康检查清单: 📋
# 1. 服务状态
systemctl is-active docker # 应返回:active
# 2. 关键配置验证
docker info --format '{{.RegistryConfig.Mirrors}}' # 检查加速器
docker info --format '{{.Driver}}' # 检查存储驱动,应为 overlay2
# 3. 基本功能测试
docker run --rm alpine:latest echo "Docker is ready!" # 快速功能测试配置之路,常遇“特色”问题:
欢迎分享你的真实部署经验和遇到的“坑”,你的实践是最有价值的参考。
🎯 下期预告
基础环境已经坚如磐石。下一篇,我们将进入容器操作的核心战场,我会详解 docker pull、run、exec、ps、build 等高频命令的每一个关键参数、生产用法和组合技巧,让你彻底告别命令的死记硬背,真正理解其设计逻辑。
搜索关注【刘叨叨趣味运维】公众号,用有趣的方式,啃下最硬核的技术。咱们下期见!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 [email protected] 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 [email protected] 删除。