SELinux开启会导致Docker daemon不能启动

   最近发现服务器在重启后docker服务起不来了,执行例如docker images,docker ps之类的docker命令被报错:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

开始看到这个错误懵了,没修改过docker方面的什么东西,怎么就重启一下后docker daemon就不行了起不来了呢?都有了删掉docker重装的念头,但是转头一想我没改过docker什么东西呀,有问题估计也是Ubuntu本身有了什么变化吧,于是着重看Ubuntu的初始化,最后一次还真找到了原因,在/etc/default/grub里发现GRUB_CMDLINUX_DEFAULT的字符串里splash后面被加上了 security=selinux selinux=1 

这玩意是在打开selinux啊,splash后面一般都没有这个参数的,就猜测可能跟这里打开了selinux有关,于是zhushi注释掉GRUB_CMDLINUX_DEFAULT这行后重新写了GRUB_CMDLINUX_DEFAULT="quiet splash",然后执行

    sudo update-grub

    再重启Ubuntu,然后执行docker命令发现没错了 docker ps都输出了正确的结果,为了确认是这里起作用,又把grub文件像上面图中那样改回去再执行sudo update-grub再重启,然后执行docker ps命令又报上面的Cannot connect to the Docker daemon的错了,这就说明确实是selinux被打开后导致docker服务起不来了!

    至于grub为何被突然加入了打开selinux的参数,尚不确定服务器是被人修改过还是因为更新了软件(比如内核更新)引起的,因为多人都可以访问服务器。

发布了61 篇原创文章 · 获赞 90 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/XCCCCZ/article/details/103941623