5154

Good Luck To You!

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

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年11月    »
12
3456789
10111213141516
17181920212223
24252627282930
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.