美文网首页
Docker离线安装(CentOS)

Docker离线安装(CentOS)

作者: 爱恨_交加 | 来源:发表于2021-11-05 18:28 被阅读0次

目的是纯离线安装

第一波

首先,通过该页面(图a)的指引在链接https://download.docker.com/linux/centos/7/x86_64/stable/Packages/下载了相关的rpm。

containerd.io-1.4.9-3.1.el7.x86_64.rpm
docker-ce-20.10.9-3.el7.x86_64.rpm
docker-ce-cli-20.10.9-3.el7.x86_64.rpm
docker-ce-rootless-extras-20.10.9-3.el7.x86_64.rpm
docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm
docker-scan-plugin-0.9.0-3.el7.x86_64.rpm
图a

然后传到内网电脑的一个空文件夹里,接着在该文件夹里执行yum install *.rpm,但是这些rpm包依赖其它rpm,意味着也要下载相关联的rpm包。最终,按着一个个提示下载了一大堆,见图b。

图b

很不幸,还是不行,还有下载其它依赖。这样子当然不行啦,完全是个无底洞,谁知道还要下载多少(得疯),所以宣告第一波操作失败~。

第二波

那官方有没有提供相关的压缩包呢,有的https://download.docker.com/linux/static/stable/x86_64/,在这个地址里看到相关的压缩包。下载后查看里面的内容,是一些命令,如图c

图c
备注:这只是docker-19.03.8.tgz的内容,还有一个docker-rootless-extras-20.10.9.tgz

这里,我只把docker-19.03.8.tgz放到内网里了,接下来的操作是这样的,如下:

最终,离线安装成功。

那它这里给我们准备的包能用到生产环境下?我给自己打了个问号。这个压缩包是面对所有linux系统的,那对于具体的linux系统(centos、ubuntu等),它舍弃了哪些?还是兼容了所有?目前没找到答案(彩笔啊~~~)。所以有了再进一步的想法,我这该死的强迫症。

一年过去了,第三波里的解决方案确实挺麻烦的,也许当前的方案也不错~

第三波

想要使用具体的linux系统的docker包,就得在第一波的基础上搞事情--有没有什么工具可以把docker及相关的所有依赖全部下载到指定文件夹里?然后找到了这个东西yumdownloader
参考链接:https://www.cnblogs.com/caihl/articles/15188260.html

使用了链接中的方法二

经过测试,能达到预期目的--目的包及其依赖包。但存在一个问题--已经下载的包不会再下载,这意味着指定的文件夹里的包也可能是不完整的。这应该怎么办呢?内外网两台电脑的所有东西要是一样的(可以理解为一个是另一个的克隆),接着再执行相关命令,如: yum install --downloadonly --downloaddir=/tmp docker-ce docker-ce-cli containerd.io。最后,再把文件夹里的所有包放到内网的电脑里安装,在该文件夹里执行yum install *.rpm

理论上,这是可行的。但手上没这个条件来模拟,所以就这样吧,累~~~


更新~
刚好要用上离线安装,在该死的强迫症下,还是把理论进行了验证。
步骤如下:
1、准备两台一样的服务器,接着使其中一台不能联网,保证可以使用yum命令
2、在联网的服务器上安装yum-utils yum install -y yum-utils
3、创建一个空文件夹,并执行docker相关下载

# 使用yum也行,这里是直接使用了yumdownloader
yumdownloader  --resolve --destdir /root/kk docker-ce docker-ce-cli containerd.io

最终得到这些


4、安装。把3中得到的文件打包上传到非联网的服务器上并解压,在当前文件夹下执行yum install *.rpm,安装完后执行docker -v查看版本信息(侧面验证安装是否成功)
5、启动服务。systemctl start docker
6、验证。执行docker run hello-world,看是否能正常运行镜像(hello-world镜像需要自己下载并导入)

#hello-world镜像下载、导出、导入
#在联网的电脑上下载、导出
docker pull hello-world # 拉取最新的hello-world镜像
docker save -o filename hello-world # 导出到当前目录下,并命名为filename
#在无网的电脑中导入
docker load -i filename # 在当前目录下导入hello-world镜像

一路顺利完成,理论正确!!!

生产应用

注意事项

  • 最好使用第三波中的方式。注意两台服务器都未曾安装相关的rpm及其依赖的rpm(在开始下载rpm时先做服务器器快照,方便回滚)。如果最后安装出错,很可能两台服务器不一致,存在依赖包缺失问题。
  • 统一docker版本。上述是直接使用最新版的docker,在安装时建议指定版本。

相关文章

网友评论

      本文标题:Docker离线安装(CentOS)

      本文链接:https://www.haomeiwen.com/subject/oiurzltx.html