问题

基于docker启动了centos容器,需要在centos容器里使用systemctl start xxx启动服务,出现错误:

Failed to get D-Bus connection: Operation not permitted

原因

ptrace系统调用的权限问题,容器默认情况下是没有权限去ptrace进程的。

解决方法

启动容器的时候通过privileged=true开启特权模式,并且以/usr/sbin/init作为入口命令启动,例如:

docker run -d -name centos7 --privileged=true centos:7 /usr/sbin/init

这样启动的容器,使用命令 docker exec -it centos7 /bin/bash 进入容器后,就可以在内部使用 systemctl start 启动服务了。


(END)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐