当我在fedora容器systemctl中使用时,我得到:
无法获得D-Bus连接::未知错误-1
有人知道如何解决这个问题吗?或者sysctl不能在docker容器中使用?
答案 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服务文件。