如何解决Docker问题无法连接到总线:没有这样的文件或目录

时间:2018-03-14 18:52:53

标签: linux docker

尝试在ubuntu 16.04 docker容器中运行以下命令

root@mytest:/Linux_Insight_Agent# systemctl start ir_agent.service

我已经安装了neede软件包,但在启动服务之后,问题就出现了。

Failed to connect to bus: No such file or directory

3 个答案:

答案 0 :(得分:0)

我有同样的情况 在我的情况下,我通过使用--volume参数运行docker来解决。

示例:

docker run -it \
    --volume /sys/fs/cgroup:/sys/fs/cgroup:ro \
    --rm IMAGE /bin/bash

我希望能帮到你......

答案 1 :(得分:0)

那是因为“systemctl”通过使用d-bus与systemd守护进程通信。在容器中没有systemd-daemon。要求开始可能不会完全按照您的预期进行 - 开发映射需要更长一些。

另一种解决方案可能是在here脚本的帮助下避免使用systemd守护程序。但它会覆盖默认的systemctl。

答案 2 :(得分:0)

https://itectec.com/ubuntu/ubuntu-systemctl-failed-to-connect-to-bus-docker-ubuntu16-04-container/

上面的链接提到了以下有意义的内容:

最佳答案

我假设您以类似的方式启动Docker容器

docker run -t -i ubuntu:16.04 /bin/bash

现在的问题是您的初始化进程PID 1是/ bin / bash,而不是systemd。用ps aux确认。

除了缺少dbus之外,它还是通信的方式。这是您的错误消息来源。但是由于您的PID 1没有systemd,因此将无法安装dbus。

最好是重新考虑您打算使用docker的方式。不要依赖systemd作为进程管理器,而要让Docker容器在前台运行所需的应用程序。

此脚本可用于覆盖“ / usr / bin / systemctl”。 它将在没有SystemD的情况下执行systemctl命令!