CentOS内网环境下,如何完整离线安装Docker并解决所有依赖?

准备工作(在有网络的机器上)

此阶段的目标是收集离线安装所需的所有文件,包括Docker自身的RPM软件包及其所有依赖项,以及可能需要预先准备的基础Docker镜像。

CentOS内网环境下,如何完整离线安装Docker并解决所有依赖?

我们需要一台与目标离线服务器系统版本和架构(如CentOS 7 x86_64)完全相同的联网机器,在这台机器上,我们将下载所有必需的软件包。

安装下载工具

为了能够便捷地下载软件包及其依赖,我们需要安装yum-utils工具集,它提供了yumdownloader命令。

yum install -y yum-utils

下载Docker CE及其依赖

Docker的安装并非单一软件包,它依赖于containerd.iodocker-ce-cli等组件,使用yumdownloader--resolve参数可以自动处理并下载所有依赖关系。

创建一个用于存放下载文件的目录:

mkdir -p /tmp/docker-offline-packages
cd /tmp/docker-offline-packages

执行下载命令,这里以Docker CE 24.0.6版本为例:

yumdownloader --resolve --destdir=/tmp/docker-offline-packages docker-ce-24.0.6-1.el7 docker-ce-cli-24.0.6-1.el7 containerd.io-1.6.22-3.1.el7

说明

  • --resolve:下载软件包及其所有依赖。
  • --destdir:指定下载文件的存储目录。
  • 后面跟的是具体的Docker版本包,可以根据需要从Docker官方YUM源中查找最新或特定版本。

准备Docker镜像(可选但推荐)

如果离线环境中需要立即运行特定的容器,建议在有网络的机器上预先拉取并打包镜像,准备一个alpine镜像:

CentOS内网环境下,如何完整离线安装Docker并解决所有依赖?

# 拉取镜像
docker pull alpine:latest
# 将镜像保存为tar文件
docker save -o alpine-latest.tar alpine:latest

打包所有文件

将下载的RPM包和镜像文件打包,方便传输到离线服务器。

tar -zcvf docker-offline-resources.tar.gz /tmp/docker-offline-packages/ alpine-latest.tar

离线安装(在目标CentOS机器上)

我们将打包好的docker-offline-resources.tar.gz文件通过U盘、移动硬盘或内部网络共享等方式传输到目标离线CentOS服务器上。

解压并安装软件包

解压传输过来的文件:

tar -zxvf docker-offline-resources.tar.gz

进入解压后的RPM包目录,并使用yum localinstall命令进行安装,此命令能够从本地文件安装,并自动处理本地已存在的依赖关系。

cd tmp/docker-offline-packages
yum localinstall -y *.rpm

这个命令会自动安装目录下所有的.rpm文件,包括docker-cecontainerd.io及其所有依赖。

启动并配置Docker服务

安装完成后,启动Docker服务,并将其设置为开机自启。

systemctl start docker
systemctl enable docker

导入Docker镜像

如果之前准备了镜像文件,现在可以将其加载到Docker中。

CentOS内网环境下,如何完整离线安装Docker并解决所有依赖?

# 假设镜像文件在当前目录
docker load -i alpine-latest.tar

验证安装

通过几个简单命令验证Docker是否安装成功并正常运行。

# 查看Docker版本信息
docker version
# 查看已加载的镜像
docker images

如果上述命令都能正常输出信息,特别是docker images能看到之前导入的alpine镜像,那么恭喜你,Docker已经成功在离线环境中部署完成。

为了更清晰地展示整个过程,以下是核心命令的概要表格:

阶段 操作 命令示例
准备阶段 安装下载工具 yum install -y yum-utils
下载Docker及依赖 yumdownloader --resolve --destdir=... docker-ce ...
保存Docker镜像 docker save -o image-name.tar image:tag
安装阶段 本地安装RPM包 yum localinstall -y *.rpm
启动Docker服务 systemctl start docker && systemctl enable docker
加载Docker镜像 docker load -i image-name.tar
验证安装 docker version && docker images

相关问答FAQs

Q1: 安装时提示依赖包缺失或版本冲突怎么办?
A1: 这个问题的根本原因通常是准备阶段和安装阶段的环境不一致,请务必确保:

  1. 用于下载软件包的联网机器与目标离线机器的CentOS主版本号(如都是7.x)和系统架构(如都是x86_64)完全相同。
  2. 在准备阶段,使用yumdownloader --resolve命令,确保所有依赖项都被完整下载,没有遗漏。
  3. 检查目标离线机器上是否已存在旧版本的Docker或相关依赖(如dockercontainerd),如果存在,需要先彻底卸载:yum erase docker* containerd.io,然后再进行安装。

Q2: 如何升级离线环境中的Docker版本?
A2: 离线环境的升级过程与初次安装类似,是一个重复的准备和安装流程。

  1. 在联网机器上,访问Docker官方仓库,下载新版本的Docker CE及其依赖的RPM包,同样使用yumdownloader --resolve命令。
  2. 将新版本的RPM包传输到离线机器上。
  3. 在离线机器上,直接使用yum localinstall -y *.rpm命令安装新版本的包。yum会自动处理新旧版本的替换,完成升级过程。
  4. 升级后,建议重启Docker服务以确保所有组件都使用新版本:systemctl restart docker

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-13 02:01
下一篇 2025-10-13 02:05

相关推荐

  • CentOS开机无法进入系统,如何进入GRUB界面修复?

    在 CentOS 系统的生命周期中,无论是系统管理员还是普通用户,都可能遇到需要与 GRUB(GRand Unified Bootloader)直接交互的场景,GRUB 是系统启动过程中第一个加载的软件程序,它负责加载内核并初始化操作系统,掌握如何进入并操作 GRUB 界面,是进行系统故障排查、内核参数调试、密……

    2025-10-13
    002
  • CentOS添加新硬盘后,如何分区格式化并挂载使用?

    在服务器管理或日常使用中,随着数据量的增长,为CentOS系统添加一块新的硬盘是一项非常常见且重要的操作,这不仅能扩展存储容量,还能通过将不同类型的数据(如系统文件、用户数据、数据库文件)分离到不同磁盘,来提升系统性能和数据管理的灵活性,本文将详细介绍从物理安装到系统配置的完整流程,帮助您干净、高效地为Cent……

    2025-10-11
    004
  • CentOS 6系统开机启动的完整引导顺序是什么?

    理解操作系统的引导顺序是系统管理员进行故障排查和性能优化的基石,对于CentOS 6这一经典版本而言,其引导流程具有鲜明的时代特征,主要依赖于GRUB Legacy引导加载器和Upstart初始化系统,本文将详细解析从按下电源键到系统登录提示符出现的完整过程,第一阶段:POST与BIOS初始化当计算机通电后,首……

    2025-10-13
    002
  • CentOS环境下GTX1080显卡驱动安装失败怎么办?

    准备工作:奠定坚实基础在动手安装之前,充分的准备工作可以避免后续绝大多数的常见问题,系统更新与依赖安装确保您的 CentOS 系统是最新版本,以避免潜在的兼容性问题,执行以下命令来更新系统并安装必要的开发工具包和内核头文件,sudo yum update -ysudo yum groupinstall &quo……

    2025-10-10
    003

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信