Dun*_*ill 104 server systemd docker 16.04
我正在尝试systemctl
在ubuntu:16.04
docker 容器中使用该命令。我正在运行以下命令...
systemctl status ssh
Run Code Online (Sandbox Code Playgroud)
但是我收到错误...
Failed to connect to bus: No such file or directory
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?这与在 docker 容器中运行的 Ubuntu 相关吗?我怎样才能systemctl
正常工作?
use*_*505 71
我假设你用类似的东西启动你的 docker 容器
docker run -t -i ubuntu:16.04 /bin/bash
Run Code Online (Sandbox Code Playgroud)
现在的问题是您的 init 进程 PID 1 是/bin/bash
,而不是 systemd。用 确认ps aux
。
除此之外,您缺少 dbus 将是沟通的方式。这是您的错误消息的来源。但是由于您的 PID 1 不是 systemd,因此安装 dbus 无济于事。
最好的办法是重新考虑您计划使用 docker 的方式。不要依赖 systemd 作为进程管理器,而是让 docker 容器在前台运行您想要的应用程序。
Win*_*nix 19
其他人也报告了类似的问题。启动终端并输入:
$ env
Run Code Online (Sandbox Code Playgroud)
你看到这样的环境变量了吗?
XDG_RUNTIME_DIR=/run/user/`id -u`
Run Code Online (Sandbox Code Playgroud)
Whereid -u
用反引号而不是单引号括起来。这个变量通常被重新解释为一个数字,通常1000
用于普通用户和0
超级用户 (sudo)。
如果环境变量XDG_RUNTIME_DIR
不存在,则需要创建它。完整的讨论在启动板 systemd 答案中。
归档时间: |
|
查看次数: |
222784 次 |
最近记录: |