Docker:基于rpm文件CentOS7.6无网络安装Docker(CE)

Docker目前运用相当广泛,今天要介绍的是基于CentOS7来安装Docker,本次我用的是CentOS7.6的版本,可以从阿里镜像资源网站上下载,Docker用的是Docker-CE(docker-ce-19.03.2-3.el7.x86_64.rpm)。

在线安装Docker

在有网络的情况下安装Docker是非常方便的,这里就不做过多介绍,大家可以参考:https://www.runoob.com/docker/centos-docker-install.html

无网络安装Docker(离线安装)

在我们日常的工作当中离线安装Docker的情况会越来越常见,无论是自己公司内部还是客户现场,特别是一些大型企业或行政事业单位对内部网络安全要求很高,几乎自允许局域网访问相关应用。

在百度上我查找了很多关于无网络下安装Docker的博客,方案也都差不多,但尝试过程中发现并不能成功安装。或许是我理解的不对,也或许是我的环境情况有不一样的地方。网上大多都是采用搭建本地仓库的方式,但我发现这种方式无法解决大量依赖问题,特别是在使用低版本的CentOS系统时。安装Docker需要安装一系列的依赖包,这些依赖包的安装顺序网络也很难找到,都是需要自己一个个试根据提示才知道。

我一开始也是采用构建本地仓库的方式,在CentOS7.2上进行安装。安装过程中出现大量的依赖缺失或需要版本升级的问题,而且存在多层依赖问题。如果出现这种多层依赖问题,那么解决起来是相当繁琐的,因为这个过程中你不知道先解决哪个依赖包,关系错综复杂,需要消耗大量时间和精力,最终也未必能搞定。所以操作系统的版本以及你安装的Docker版本决定了出现依赖问题的复杂度。

最终尝试模拟了好几遍后我也放弃了这种方式安装Docker,一度找不到解决方案。在这时寻找解决方案的入口很关键,一直我都以“离线安装”来寻找方案,结果可想而知都一个样。后来无意间通过“无网络安装Docker”找到一些不一样的解决方案,也是在借鉴这些方案的基础上最终完成了Docker的安装工作,这个过程相当顺利。

本次具体安装过程:

1、下载Docker必要的相关依赖包,主要需要的依赖包为libseccomp、libtool-ltdl、container-selinux、docker-ce。

      1)可以通过联网的机器用yum安装依赖环境,并自动下载相关的Docker软件包源。

# yum install yum-utils --downloadonly --downloaddir=/root/dockerrpm/

# yum install device-mapper-persistent-data --downloadonly --downloaddir=/root/dockerrpm/

# yum install lvm2 --downloadonly --downloaddir=/root/dockerrpm/

# yum install policycoreutils-python --downloadonly --downloaddir=/root/dockerrpm/

# yum install docker-ce-18.06.1.ce --downloadonly --downloaddir=/root/dockerrpm/

        2)自己手动下载相关依赖环境包,具体需要哪些包参考下面第2点,可以到这里进行搜索找到相关的rpm包https://centos.pkgs.org/7/centos-x86_64/

2、根据以下顺序进行安装,使用rpm -ivh --replacefiles 来进行安装,--replacefiles 是强制替换程序的命令,因为下载的这些包中有的可能已经安装过了,如果不加-replacefiles可能会报冲突异常导致无法安装。当然也可以加--nodeps 不验证套件档的相互关联性。

# rpm -ivh --replacefiles audit-libs-2.8.5-4.el7.x86_64.rpm

# rpm -ivh --replacefiles audit-2.8.5-4.el7.x86_64.rpm

# rpm -ivh --replacefiles audit-libs-python-2.8.5-4.el7.x86_64.rpm

# rpm -ivh --replacefiles checkpolicy-2.5-8.el7.x86_64.rpm

# rpm -ivh --replacefiles libcgroup-0.41-21.el7.x86_64.rpm

# rpm -ivh --replacefiles libsemanage-python-2.5-14.el7.x86_64.rpm

# rpm -ivh --replacefiles python-IPy-0.75-6.el7.noarch.rpm

# rpm -ivh --replacefiles setools-libs-3.3.8-4.el7.x86_64.rpm

# rpm -ivh --replacefiles policycoreutils-2.5-33.el7.x86_64.rpm

# rpm -ivh --replacefiles policycoreutils-python-2.5-33.el7.x86_64.rpm

# rpm -ivh --replacefiles container-selinux-2.107-3.el7.noarch.rpm

# rpm -ivh --replacefiles libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm

# rpm -ivh --replacefiles containerd.io-1.2.6-3.3.el7.x86_64.rpm

# rpm -ivh --replacefiles docker-ce-cli-19.03.2-3.el7.x86_64.rpm

# rpm -ivh docker-ce-19.03.2-3.el7.x86_64.rpm

3、启动docker:# systemctl start docker

此时docker已经安装完成,通过docker命令进行其他操作,docker命令参考:https://www.runoob.com/docker/docker-command-manual.html

4、Docker镜像上传

    因为是无网络安装,所以相关镜像只能手动上传后进行加载。此处需要用到docker save命令来下载已经搭好的镜像,用到docker load命令来加载上传后的镜像。关于镜像的创建与获取就不过多演示,一般可以通过Dockerfile来创建私有的镜像,公用镜像可以到docker镜像资源网站上下载,或者通过docker pull命令在线拉取。

CentOS版本越高出现依赖问题越少,本教程适用于所有版本,各rpm包之间版本依赖以实际版本为主。

如果对你有用记得给点个赞,或打赏一下也是可以的 哈哈

 

你可能感兴趣的:(Docker)