CentOS 7 在 Docker 下的一个问题和绕过方法
札记    无    2017-07-31 16:41:43    158    0    0

问题

在 Docker 下使用 service 命令总会出现错误:

Failed to get D-Bus connection: Operation not permitted

原因

github centos官方镜像repo 的解释, 大意是说原来的 systemd 会需要 CAP_SYS_ADMIN , 我们不想这样, 就换成了 fakesystemd , 所以你会遇到上面奇葩的问题。 当然官方repo也给出了解决方案不过比较复杂。

解决方案

启动的命令需要挂载 cgroup 的 fs,并用 init 来做 entrypoint。
docker run -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro –name centos centos:systemd /usr/sbin/init

如果需要执行其它命令,可以执行exec进入容器
docker exec -ti centos bash

oo

还是感觉不方便,所以,Docker 下以后还是用 Ubuntu 镜像吧。

文档导航