导航菜单

在Docker中使用systemctl启动服务报错的解决办法

陆兴东 2026-04-08 13 浏览 Docker
一、问题背景   

        在Docker中通过systemctl 启动服务的时候,总是报“Failed to get D-Bus connection: Operation not permitted ”这样的错误提示,如下所示:

        [root@localhost ~]# systemctl start sshd

        Failed to get D-Bus connection: Operation not permitted

        为了解决在Docker运行的镜像中启动服务时报出以上错误信息,整理了一下解决办法,解决方法如下:

二、解决办法

       在docker run 启动container的时候,加上/usr/sbin/init ,这样运行起来的container就可以使用systemctl来启动服务了,如下所示:

        [root@localhost ~]# docker run -tid --name nginx centos/nginx:v01 /usr/sbin/init

        另一种解决办法,就是在通过Dockerfile生成镜像文件的时候,通过CMD来执行/usr/sbin/init这条命令,即:CMD [ "/usr/sbin/init"]。