CentOS7 1611 运行Docker 使用systemctl start httpd.service报错的解决过程

时间:2024-04-03 09:28:49

CentOS7 1611 运行Docker 使用systemctl start httpd.service报错如下图
CentOS7 1611 运行Docker 使用systemctl start httpd.service报错的解决过程
报错信息:Failed to get D-BUS connection: Operation no permitted

在运行时加上 --privileged选项仍然无济于事。
CentOS7 1611 运行Docker 使用systemctl start httpd.service报错的解决过程

有网友说dbus-daemon没能启动。systemctl并不是不能使用。将CMD或者entrypoint设置为/usr/sbin/init即可。docker容器会自动将dbus等服务启动起来。然而容器卡死了。
CentOS7 1611 运行Docker 使用systemctl start httpd.service报错的解决过程

baidu了一大圈崩溃了,后来尝试了一下-d参数,哈哈居然OK了。
CentOS7 1611 运行Docker 使用systemctl start httpd.service报错的解决过程

GITHUB的CentOS repo文档中也描述了该问题,大意是CentOS7 systemd默认是不启动的。https://github.com/docker-library/docs/tree/master/centos#systemd-integration
下图是外国友人提供的解决方案,挂载 /sys/fs/cgroup 目录到容器的 /sys/fs/cgroup 目录并配置只读权限,但是docker run 命令只能使用-d参数,不能使用-it参数,使用-it参数仍然会卡死。
CentOS7 1611 运行Docker 使用systemctl start httpd.service报错的解决过程