CentOS离线安装docker随笔

0. 前言

前段时间负责给客户部署新开发的平台,客户那边的服务器老旧,上一个部署环境的同事已离职多年,服务器在内网,不允许连接外网,发行版是CentOS7。
docker安装不完整,没有docker-compose插件,也无法正常运行容器,手动拷贝过去的离线镜像无法成功运行容器。

1. 清理旧docker

系统原先安装的docker不完整,需要卸载

# 关停docker服务
sudo systemctl stop docker

# 停止开启自启
sudo systemctl disable docker

# 卸载docker
sudo yum remove docker

2. 下载docker安装包

思路:使用虚拟器安装一个相同版本发行版的系统,然后使用手段搞到docker的rpm包以及所有需要的依赖包。毕竟官方docker文档没有找到提供的rpm包,所以借助yum相关工具从仓库源拿到rpm包。

2.0 替换可用的源

centos停更了,官方源失效了,使用华为开源镜像站的源,或者阿里开源镜像站的源,根据官网说明把源替换掉。

2.1 使用yumloader工具下载docker的包以及所有依赖包

# 先安装yum-utils工具,才能有yumloader命令
sudo yum install yum-utils

# 配置docker官方安装包的源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 使用yumloader命令获取docker安装包以及依赖包,以及compose插件包
sudo yumdownloader --resolve docker-ce docker-compose-plugin

执行完命令之后当前路径下会有一堆安装包,例如:

[root@localhost download]# ls
audit-libs-python-2.8.5-4.el7.x86_64.rpm  container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm  docker-ce-cli-26.1.4-1.el7.x86_64.rpm              fuse3-libs-3.6.1-4.el7.x86_64.rpm        libseccomp-2.3.1-4.el7.x86_64.rpm             python-IPy-0.75-6.el7.noarch.rpm
checkpolicy-2.5-8.el7.x86_64.rpm          docker-buildx-plugin-0.14.1-1.el7.x86_64.rpm          docker-ce-rootless-extras-26.1.4-1.el7.x86_64.rpm  fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm  libsemanage-python-2.5-14.el7.x86_64.rpm      setools-libs-3.3.8-4.el7.x86_64.rpm
containerd.io-1.6.33-3.1.el7.x86_64.rpm   docker-ce-26.1.4-1.el7.x86_64.rpm                     docker-compose-plugin-2.27.1-1.el7.x86_64.rpm      libcgroup-0.41-21.el7.x86_64.rpm         policycoreutils-python-2.5-34.el7.x86_64.rpm  slirp4netns-0.4.3-4.el7_8.x86_64.rpm

3. 安装离线包

所有rpm包上传到目标服务器之后直接安装所有rpm包

sudo yum localinstall -y *.rpm

更多推荐