你需要在 CentOS 7 系统上进行 Docker 的离线安装,核心思路是先在有网络的同版本 CentOS 7 上下载所有相关安装包和依赖,再拷贝到离线机器上进行本地安装,下面我将分步详细讲解完整流程,确保你能顺利完成。
一、前期准备(有网络的 CentOS 7 机器)
这一步的目标是下载 Docker 及所有依赖包,避免离线机器出现依赖缺失问题。
1. 配置 yum 源(确保下载顺利)
优先配置阿里云 yum 源(更稳定、下载更快),如果已有可用 yum 源可跳过。
bash
运行
# 1. 备份原有的 yum 源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 2. 下载阿里云 CentOS 7 yum 源配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 3. 下载 Docker 阿里云 yum 源(必须,否则无法获取 Docker 安装包)
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4. 清理并更新 yum 缓存
yum clean all
yum makecache fast
2. 安装 yum-utils(用于下载离线包)
bash
运行
yum install -y yum-utils
3. 创建离线包存放目录
bash
运行
# 创建目录,用于存放所有下载的 rpm 包
mkdir -p /docker-offline-packages
cd /docker-offline-packages
4. 下载 Docker 及所有依赖包
使用 yumdownloader 命令下载 Docker (选择稳定版 docker-ce)及其所有依赖,--resolve 参数会自动下载相关依赖。
bash
运行
# 下载 Docker 核心包(包含 docker-ce、docker-ce-cli、containerd.io 等)
yumdownloader --resolve --destdir=/docker-offline-packages docker-ce
说明:下载过程中会自动拉取所有依赖(如
container-selinux、libseccomp等),等待下载完成即可,目录下会出现多个.rpm文件。
5. 打包离线包(方便拷贝)
为了便于传输,将所有 rpm 包打包成压缩文件:
bash
运行
tar -zcvf docker-ce-centos7-offline.tar.gz /docker-offline-packages
二、离线机器操作(无网络的 CentOS 7 机器)
这一步将拷贝打包好的离线包,进行本地安装并配置 Docker。
1. 拷贝离线包到离线机器
通过 U 盘、移动硬盘等存储设备,将 docker-ce-centos7-offline.tar.gz 拷贝到离线机器的任意目录(例如 /root/ 目录)。
2. 解压离线包
bash
运行
# 进入拷贝目录
cd /root/
# 解压压缩包
tar -zxvf docker-ce-centos7-offline.tar.gz
# 进入解压后的 rpm 包目录
cd /docker-offline-packages
3. 本地安装 Docker 及依赖
使用 yum localinstall 进行本地安装(该命令会自动处理本地包之间的依赖关系,比 rpm -ivh 更稳妥):
bash
运行
yum localinstall -y *.rpm
说明:安装过程中会提示
Is this ok [y/d/N],输入y并回车即可,等待安装完成。
若一直提示错误终极解决方案(本次必成,直接绕过无效依赖)
在有网环境,下载核心包(containerd.io、container-selinux、docker-ce、docker-ce-cli)
#彻底卸载docker
yum remove -y docker \
docker-buildx-plugin \
container-selinux \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
docker-ce \
docker-ce-cli \
containerd.io
#下载核心包
yumdownloader --resolve docker-ce-24.0.9-1.el7
命令执行说明:此命令会自动下载以下4个包, 其中docker-ce-rootless-extras我们不需要手动删除即可
- (1/4): docker-ce-24.0.9-1.el7.x86_64.rpm
- (2/4): docker-ce-cli-26.1.4-1.el7.x86_64.rpm
- (3/4): containerd.io-1.6.33-3.1.el7.x86_64.rpm
- (4/4): docker-ce-rootless-extras-26.1.4-1.el7.x86_64.rpm
# 单独下载container-selinux
yumdownloader --resolve container-selinux
确保当前目录只有 4 个 Docker 核心包,执行以下命令直接安装:
# -i:安装新包;-v:显示详细过程;-h:显示进度条;--nodeps:跳过依赖检查
rpm -ivh --nodeps *.rpm
命令执行说明:
- 这个命令会忽略`docker-ce`对`docker-ce-rootless-extras`的依赖要求,直接安装所有核心包。
- 仅跳过这一个非必需依赖,4 个核心包之间的依赖是完整的(不会影响 Docker 功能),因此安装后 Docker 可以正常运行。
- 无需担心其他问题,因为我们舍弃的是不常用的 rootless 功能,对基础使用毫无影响。
安装完成后,修复可能的 yum 依赖缓存(可选,避免后续 yum 操作告警):
yum clean all && yum makecache fast
4. 验证 Docker 安装是否成功
bash
运行
# 查看 Docker 版本
docker --version
docker-compose --version(若下载了 compose 包)
# 启动 Docker 服务
systemctl start docker
# 设置 Docker 开机自启(推荐)
systemctl enable docker
如果能正常显示 Docker 版本,且 systemctl start docker 无报错,说明安装成功。
5. (可选)配置 Docker 镜像加速(离线环境无需,但后续联网可使用)
如果离线机器后续可能联网使用 Docker,可配置国内镜像加速,提升镜像拉取速度:
bash
运行
# 创建 Docker 配置目录
mkdir -p /etc/docker
# 编辑 daemon.json 配置文件
vi /etc/docker/daemon.json
在文件中添加以下内容(阿里云镜像加速,需自行替换为个人专属加速地址,离线环境可跳过此步骤):
json
{
"registry-mirrors": ["https://你的专属加速地址.mirror.aliyuncs.com"]
}
保存并退出后,重启 Docker 使配置生效:
bash
运行
# 重新加载配置
systemctl daemon-reload
# 重启 Docker
systemctl restart docker