docker centos7镜像 Failed to get D-Bus connection: Operation not permitted

Author Avatar
ieayoio 1月 16, 2018
  • 在其它设备中阅读本文章

docker centos7镜像中使用service或者systemctl提示Failed to get D-Bus connection: Operation not permitted,目前来看,这个问题只发生在centos7中,centos6.5镜像应当没这个问题,至于产生的原因,网上有相关的讨论:

http://dockone.io/question/729

原来的systemd会需要CAP_SYS_ADMIN,我们不想这样,就换成了fakesystemd,所以你会遇到上面奇葩的问题.当然官方repo也给出了解决方案不过比较复杂.

如果是没有service命令造成的,要先安装这个命令:

1
yum install -y initscripts

以特权方式启动centos7镜像:

1
docker run -it --privileged=true registry.docker-cn.com/library/centos:7 /bin/bash

例如重启mysql服务时报了如下错误:

1
2
3
[root@773a8f8c2a43 ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
Failed to get D-Bus connection: Operation not permitted

解决方案如下,只需要执行一个命令:

1
exec /usr/sbin/init

需要注意的是这里不能单纯的执行/usr/sbin/init,否则是不能生效的,执行完之后再次使用docker exec命令进入docker即可,此时service命令使用正常。

参考链接:


该博文来自于ieayoio的博客:ieayoio’s blog

本文链接:http://www.ieayoio.com/2018/01/16/docker-centos7-Failed-to-get-D-Bus-connection-Operation-not-permitted/