在自家的开发环境中,一般都是直接yum安装最新的docker来做镜像和容器,没有仔细深究,一直相安无事。但这几天却发现一个惊悚的现象,新申请的两台虚机,一台安装好后正常,另一台却出现异常:
docker exec -it mongo bashrpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "process_linux.go:110: decoding init error from pipe caused \"read parent: connection reset by peer\""
这时就象征性的查了下“connection reset by peer”的相关问题但却依然解决不了问题,直到看到了,才想起来有没有可能是docker的一个bug,因此特意查了下两个系统对应的docker版本,分别如下:
[root@devlop ~]# docker -vDocker version 1.13.1, build 8633870/1.13.1
[root@devlop ~]# docker -v Docker version 1.13.1, build 07f3374/1.13.1
可用的是build 8633870,出现异常的是build 07f3374。
那么问题来了,同样的安装指令同样的环境为什么会有2个不同的版本呢?查一下yum源:
yum list dockerLoaded plugins: fastestmirror, prioritiesLoading mirror speeds from cached hostfile60 packages excluded due to repository priority protectionsAvailable Packagesdocker.x86_64 2:1.13.1-84.git07f3374.el7.centos @extrasdocker.x86_64 2:1.13.1-75.git8633870.el7.centos @extra
发现有2个版本,一个带坑一个不带坑。
无力吐槽,为了快速解决问题,直接卸载docker,装上docker-ce了。
#查询已安装的docker包yum list installed | grep docker#删除已安装的包yum -y remove docker.x86_64yum -y remove docker-client.x86_64yum -y remove docker-common.x86_64#删除安装目录rm -rf /var/lib/docker/#安装docker-ceyum install docker-ce