无法获得 D-Bus 连接:不允许操作

Failed to get D-Bus connection: Operation not permitted

我正在尝试在 docker centos7 映像上安装 ambari 2.6,但在 ambari 设置步骤中以及刚好在初始化 postgresql 数据库时我收到此错误:

Failed to get D-Bus connection: Operation not permitted

每次我尝试在我的 docker 图片上 运行 服务时都会遇到这个错误。

我尝试了网上的所有解决方案,但都没有奏效。

有没有人知道如何解决这个问题?

提前致谢

使用这个命令

docker run -d -it --privileged {Image ID} /usr/sbin/init

并在容器中访问root

systemctl start httpd.service

这应该有效!

在 Centos7 上,所有服务都是通过 systemd 守护进程启动和停止的。 systemctl 命令将简单地尝试通过使用 d-bus 通道与守护进程通信——这就是消息的来源。

而不是 运行 处于特权模式的容器(因此它并没有真正被包含)你也可以尝试 docker-systemctl-replacement 来避免这种情况。

运行 这个命令:

docker run -it -p 1001:25 --name postfix1 --privileged -d   --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro postfix

详细说明@Guido 的 , what worked for me was copying systemctl.py from here 并将其放在与我的 Dockerfile 相同的目录中,然后将以下内容添加到我的 Dockerfile:

COPY systemctl.py /usr/bin/systemctl
RUN chmod a+x /usr/bin/systemctl

例如,这让我可以像这样启动 sshd 服务:

service sshd start