在fedora容器中systemctl给出了无法获得D-Bus连接
当我在一个Fedora容器systemctl使用时,我得到:
无法获得D-Bus连接::未知错误-1
有人知道如何解决这个问题吗? 或者systemctl不能用于docker集装箱?
systemctl
命令通过DBus连接与systemd
进行通信。 你在你的容器中运行systemd
是不太可能的,所以systemctl
没有什么可说的。
虽然有可能在一个容器中运行systemd
,但这样做往往(但并非总是)表明您需要重新考虑容器的体系结构。
我已经修复了类似的问题,请检查这个答案 。
主要思想是使/usr/sbin/init
容器内的第一个进程 。
如前所述,标准systemctl需要SystemD。 但是对于像“systemctl enable”这样的命令或启动一个服务进程来说,一个没有运行SystemD的实际上就是这样做的。
“systemctl enable”实质上将查看sshd.service文件中的“WantedBy = multi-user.target”子句,然后在/etc/systemd/system/multi-user.target.wants/中创build一个符号链接。 相似地,“systemctl start”将在ssh.service文件中查找“ExecStart = / usr / bin / sshd”子句。
如果您不想查看并手动运行这些部分,则可以使用docker -systemctl-replacement中的 systemctl.py帮助程序,它可以为您解释systemd服务文件。