配置centos7解决 docker Failed to get D-Bus connection 报错

| 分类:linux | 评论: 0 | 浏览:162

记录一下docker中运行service nginx restartdocker Failed to get D-Bus connection的解决方法

原因及解决方式:

因为service是映射到systemctl
所以systemctl出现的问题同样也可以解决。
这个的原因是因为dbus-daemon没能启动。其实systemctl并不是不可以使用。将你的CMD或者entrypoint设置为/usr/sbin/init即可。会自动将dbus等服务启动起来。
然后就可以使用systemctl了。命令如下:

# 在创建docker容器时添加--privileged,并指定运行方式为/usr/sbin/init
docker run --privileged -dit --name centos -p 127.0.0.1:80:80 -p 127.0.0.1:3306:3306 -v /home/jam/Desktop/project/:/www centos-php5-mysql-5.6 /usr/sbin/init
这样启动有个问题就是不能用docker attach来启动容器终端,可以用docker exec来启动终端
# 用exec启动终端登录
docker exec -it centos /bin/bash
Responses