无外网环境下安装docker的关键是提前将所有必需rpm或deb包及其完整依赖链一次性打包带入,centos用yumdownloader配合修复eol后的yum源(如vault.centos.org),ubuntu用apt-offline精准抓取依赖树,或直接部署官方静态二进制包并配置systemd服务。

无外网环境下安装 Docker,关键不是“导入依赖”,而是**提前把所有必需的 RPM 或 DEB 包及其完整依赖链一次性打包带入**。离线环境没有包管理器的自动解析能力,必须靠人工或工具确保依赖不缺、顺序正确、版本兼容。
CentOS/RHEL 系统:用 yumdownloader 打全量依赖包
在一台联网、系统版本和架构完全一致(如 CentOS 7 x86_64)的跳板机上操作:
- 先修复 yum 源:因 CentOS 7 已 EOL,需切换到
vault.centos.org或阿里云centos-vault镜像,否则yumdownloader会失败 - 安装依赖收集工具:
yum install -y yum-utils - 下载 Docker CE 及其全部依赖(含 containerd.io、docker-ce-cli 等):
yumdownloader --resolve --destdir ./docker-offline docker-ce docker-ce-cli containerd.io - 生成依赖清单并校验:
rpm -qpR *.rpm | grep "not found"——若无输出,说明依赖已齐;若有缺失,补下载对应包
Ubuntu/Debian 系统:用 apt-offline 精准抓取依赖树
比手动下载更可靠,能自动识别间接依赖(如 libseccomp2、cgroupfs-mount):
- 在联网 Ubuntu 上安装工具:
sudo apt install apt-offline - 生成依赖请求文件:
apt-offline set docker-deps.sig --install-packages docker-ce docker-ce-cli containerd.io - 下载所有包及签名:
apt-offline get docker-deps.sig --bundle docker-deps.zip - 将 zip 拷贝进内网机后安装:
apt-offline install docker-deps.zip
通用二进制方式:绕过包管理器,直接部署静态文件
适合对系统改动敏感或权限受限的场景(如某些加固过的生产服务器):
- 从 Docker 官方静态包页下载
docker-26.1.1.tgz(适配当前最新稳定版) - 解压后得到
docker/目录,包含dockerd、docker等可执行文件 - 拷贝到目标机
/usr/bin/并设置权限:sudo cp docker/* /usr/bin/ && sudo chmod +x /usr/bin/docker* - 手动创建 systemd service 文件(
/etc/systemd/system/docker.service),指定ExecStart=/usr/bin/dockerd
验证与收尾:别跳过这步
装完不等于可用。必须确认三件事:
-
systemctl daemon-reload && systemctl start docker启动服务无报错 -
docker version能正常输出客户端和服务端版本 -
sudo docker run --rm hello-world—— 若提示 “Cannot connect to the Docker daemon”,说明 dockerd 没跑起来或 socket 权限不对











