无法获得 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
我正在尝试在 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 的 systemctl.py
from here 并将其放在与我的 Dockerfile
相同的目录中,然后将以下内容添加到我的 Dockerfile
:
COPY systemctl.py /usr/bin/systemctl
RUN chmod a+x /usr/bin/systemctl
例如,这让我可以像这样启动 sshd
服务:
service sshd start