宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

内网环境下,离线安装docker启动报错解决方案

今天上头让我在公司内网电脑下,安装docker,心想这安装几遍了,这不随便操作吗, so easy!!!
然后就被打脸了,还是打的啪啪响。
当我安装,运行docker的yum源的时候:

[root@zjt-ljxqht ~]# yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoLoaded plugins: fastestmirroradding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repograbbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repoCould not fetch/save url http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo: [Errno 14] curl#56 – “Recv failure: Connection reset by peer”

卧槽!!****(口吐芬芳ing)
这…怎么和我之前安装的不一样。
起初以为是http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo路劲有问题,但是当我用浏览器访问的时候,是可以访问到的,这个时候我就想到事情不简单。
然后我就ping 了下百度的地址,果然,没ping通,搜嘎斯内!!原来访问不到外网,怪不得提示连接重置
小意思,这怎么可能难到我crud小能手呢,离线安装一手。
我在官网上下载了如下三个rpm,我没有下载selinux,因为docker-ce-cli已经包含了它。

官网链接 :https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

rpm : containerd.io-1.2.13-3.2.el7.x86_64.rpm,docker-ce-19.03.7-3.el7.x86_64.rpm,docker-ce-cli-19.03.7-3.el7.x86_64.rpm

将下载好的文件上传到服务器上,在当前对应的目录下执行
rpm -ivh *.rpm –nodeps –force
会看到安装进度条,安装完成后。
使用systemctl start docker启动服务,提示Job for docker.service canceled.
这又是啥子错,然后用docker ps命令,提示Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
使用docker version,只看得到Client信息。

Client: Docker Engine – Community Version: 19.03.7 API version: 1.40 Go version: go1.12.17 Git commit: 7141c199a2 Built: Wed Mar 4 01:24:10 2020 OS/Arch: linux/amd64 Experimental: false

然后经过一系列查阅资料,看到可以用systemctl status docker 查看本次启动时候报错信息,我就敲了下,看到

Mar 31 10:09:42 zjt-ljxqht dockerd[4110]: /usr/bin/dockerd: error while loading shared libraries: libseccomp.so.2: cannot open shared object file: No such file or directoryMar 31 10:09:42 zjt-ljxqht systemd[1]: docker.service: main process exited, code=exited, status=127/n/aMar 31 10:09:42 zjt-ljxqht systemd[1]: Stopped Docker Application Container Engine.Mar 31 10:09:42 zjt-ljxqht systemd[1]: Unit docker.service entered failed state.Mar 31 10:09:42 zjt-ljxqht systemd[1]: docker.service failed.

(docker服务日志也可以使用journalctl -u docker –no-pager,查看全部日志)

从日志可以看出来,我这里没有找到libseccomp.so.2文件(这个位置可能不一样,查资料的时候,看到有的朋友的libseccomp.so.0文件,但是解决方案都是一样的)。

使用find / -name libseccomp.so.2命令也没有找到这个文件,
到了这里,大概就知道是什么问题了,因为没找到部分rpm。

这里我大概看了下,缺失的有 systemd-devel,systemd-libs ,libseccomp ,device-mapper-libs。所以我们直接yum 安装下,问题不大,哈哈…

yum -y install systemd-devel systemd-libs libseccomp device-mapper-libs

这些rpm是不用外网也可以安装的。
安装完成后,再次使用 systemctl start docker 命令,没提示报错。
在接着使用docker ps,完美展示显示内容,至此内网环境安装完成。