在 CentOS 7 的 docker 容器里启用 service 服务。

systemctl status xxxxx
# 报错:
Failed to get D-Bus connection: Operation not permitted

报这个错的原因是 dbus-daemon 没能启动。systemctl 并不是不能使用。将CMD或者entrypoint设置为/usr/sbin/init即可。docker 容器会自动将 dbus 等服务启动起来。

docker run --name test -it -d --privileged=true centos /usr/sbin/init
# --privileged=false, 指定容器是否为特权容器,特权容器拥有所有的capabilities
# -d, --detach=false, 指定容器运行于前台还是后台,默认为false
# -i, --interactive=false, 打开STDIN,用于控制台交互
# -t, --tty=false, 分配tty设备,该可以支持终端登录,默认为false