问题
-
安装完docker后,我使用
sudo systemctl start docker
启动docker服务,报如下错误:
Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
-
按照提示执行
sudo systemctl status docker.service
,可以看到错误信息:
从这个错误信息也看不出什么。 -
于是执行
sudo dockerd
,可看到失败信息:
failed to start daemon: Error initializing network controller: Error creating default "bridge" network: Failed to program NAT chain: INVALID_ZONE: docker
解决
在网上找近了各种方法,都尝试了一篇,始终不行。
是不是CentOS内核版本问题?
我想是不是系统内核或yum软件包的问题,然后我又看下Docker对CentOS运行环境的要求:
- Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
- Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。
然后我执行uname -r
和lsb_release -a
查看下Linux内核版本和CentOS版本:
这么看似乎也没有问题啊。
是不是软件包问题?
我又想到了之前的一个报错:Creating filesystem xfs on device docker-253:1-34265854-base, mkfs args: [-m crc=0,finobt=0 /dev/mapper/docker-253:1-34265854-base]
,是由于xfsprogs
软件包版本过低没有-m
参数,导致Docker服务启动不了。
而这个问题是通过执行yum update xfsprogs
更新该软件包解决的。
于是我便想要不干脆直接执行yum -y update
,把软件包和系统内核都更新下。(考虑到该命令可能会导致生产环境软件无法正常运行,请谨慎操作)
于是立马执行。经过漫长的等待终于完成了。
完成后我发现内核版本没有变,而CentOS的版本变了。
那我再试试sudo systemctl start docker
,看能不能启动Docker。
终于Dockerrunning
了。
可是执行sudo docker ps
还是报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
执行sudo dockerd
,提示失败信息为:failed to start daemon: pid file found, ensure docker is not running or delete /var/run/docker.pid
然后尝试Google各种方法,依旧不行,此时我真的快要哭了!😭😭😭
要不卸载重装?
不想为这个浪费时间了,于是我立马卸载重装。
卸载重装的教程我就不写了,记住直接看官网,直接看官网,直接看官网(https://docs.docker.com/engine/install/centos/),不要看网上的一些博客,因为大多数写得都过时了,或者不全面。
果然卸载重装后,问题解决!😀😀😀
总结
这几个问题也是困扰我几天了,像我这种有问必究的人,是不会放过的,所以大家如果也遇到类似的问题,可以安装我这种思路去解决。
本文是我遇到问题的解决方法,可能不适合所有人,仅供参考!
支持🤟
- 🎸 [关注❤️我吧],我会持续更新的。
- 🎸 [点个👍赞吧],码字不易麻烦了。