在fedora容器中,systemctl无法获得D-Bus连接

时间:2015-02-22 19:08:35

标签: docker fedora

当我在fedora容器systemctl中使用时,我得到:

无法获得D-Bus连接::未知错误-1

有人知道如何解决这个问题吗?或者sysctl不能在docker容器中使用?

3 个答案:

答案 0 :(得分:1)

systemctl命令通过DBus连接与systemd对话。您在容器中运行systemd的可能性不大,因此systemctl无法与之交谈。

虽然可能在容器中运行systemd,但这样做通常(但并非总是如此!)表示您需要重新考虑容器的体系结构。

答案 1 :(得分:0)

我已修复了类似问题,请检查this answer

主要想法是在容器内设置/usr/sbin/init 第一个流程

答案 2 :(得分:0)

如前所述,标准systemctl需要SystemD。但对于像“systemctl enable”这样的命令或启动服务进程,实际上没有运行SystemD就可以做到这一点。

“systemctl enable”将基本上查看sshd.service文件中的“WantedBy = multi-user.target”子句,然后在/etc/systemd/system/multi-user.target.wants中创建一个符号链接/。类似地,“systemctl start”将在ssh.service文件中查找“ExecStart = / usr / bin / sshd”子句。

如果您不想查看并手动运行这些部分,可以使用docker-systemctl-replacement中的systemctl.py帮助程序,它可以为您解释systemd服务文件。