在docker容器中使用systemctl启动服务
在我的Dockerfile中,我试图安装多个服务,并希望在启动容器时使它们全部自动启动。服务之一是mysql,当我启动容器时,我看不到mysql服务正在启动。当我尝试手动启动时,出现错误:
Failed to get D-Bus connection: Operation not permitted
Dockerfile:
FROM centos:7RUN yum -y install mariadb mariadb-server
COPY start.sh start.sh
CMD ["/bin/bash", "start.sh"]
我的start.sh文件:
service mariadb start
Docker构建:
docker build --tag="pbellamk/mariadb" .
Docker运行:
docker run -it -d --privileged=true pbellamk/mariadb bash
我检查了centos:systemd
图像,也无济于事。如何使用通过systemctl / service命令启动的服务启动容器。
回答:
当你docker
run使用bash
的命令,在init系统(例如SystemD)不上手(也没有你的启动脚本,因为该命令传递的覆盖CMD
在Dockerfile)。尝试更改您要使用的命令,使用/sbin/init
守护程序模式启动容器-d
,然后使用环顾四周docker
exec -it <container id> sh。
以上是 在docker容器中使用systemctl启动服务 的全部内容, 来源链接: utcz.com/qa/431789.html