生产服务器应通过官方仓库安装docker engine,确保稳定、安全、可复现与易维护:使用lts系统(如ubuntu 22.04/24.04或centos stream 9),添加gpg密钥与稳定源,安装指定小版本,配置docker用户组、服务自启、镜像加速及daemon.json安全加固。
生产服务器上规范化安装 docker engine,核心是稳定、安全、可复现、易维护。不推荐用一键脚本或第三方源,必须通过官方仓库安装,配合权限控制、服务管理、镜像加速和基础安全加固。
确认系统环境与前置依赖
确保使用长期支持(LTS)版本的 Linux 发行版,如 Ubuntu 22.04/24.04 或 CentOS Stream 9。避免使用已停止维护的版本(如 Ubuntu 18.04、CentOS 7)。
- 更新系统并安装必要工具:
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release(Ubuntu/Debian)
或sudo yum install -y yum-utils(RHEL/CentOS Stream) - 检查内核版本:Docker 要求 Linux 内核 ≥ 3.10,建议 ≥ 5.4(尤其涉及 cgroup v2、overlay2 存储驱动等特性)
- 确认
iptables或nftables已安装且未被禁用;Docker 网络依赖其规则管理能力
通过官方仓库安装 Docker Engine
这是唯一被 Docker 官方推荐用于生产环境的方式,能精准控制版本、接收安全更新,并避免脚本安装带来的不可控依赖。
- 添加 Docker 官方 GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - 配置稳定版仓库(以 Ubuntu 22.04 为例):
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - 安装指定版本(例如 26.1.4):
sudo apt update && sudo apt install -y docker-ce=5:26.1.4~3-0~ubuntu-jammy docker-ce-cli=5:26.1.4~3-0~ubuntu-jammy containerd.io
固定小版本可防止意外升级,避免兼容性问题
配置非 root 用户与服务自启动
生产环境严禁直接用 root 运行容器命令,同时需确保 Docker 守护进程开机自启、异常自动恢复。
- 创建
docker用户组并把运维/开发用户加入:sudo groupadd docker && sudo usermod -aG docker $USER
注意:需重新登录或执行newgrp docker生效 - 启用并启动服务:
sudo systemctl enable docker && sudo systemctl start docker - 验证运行状态:
sudo systemctl status docker(应显示 active (running))sudo docker run --rm hello-world(输出欢迎信息即成功)
生产级基础加固与优化
默认配置不满足生产要求,需补充关键设置以提升稳定性与安全性。
- 配置国内镜像加速(如阿里云、腾讯云):
编辑/etc/docker/daemon.json,写入:{"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]}
然后执行sudo systemctl daemon-reload && sudo systemctl restart docker - 限制容器资源(可选但推荐):
在daemon.json中添加"default-ulimits"或为特定容器设--memory/--cpus,防止单个容器耗尽主机资源 - 禁用不安全的存储驱动(如 devicemapper):
确保使用overlay2(现代内核默认),可通过docker info | grep "Storage Driver"确认 - 关闭 Docker 的远程 API(除非明确需要):
检查dockerd启动参数中无-H tcp://,默认只监听unix:///var/run/docker.sock











