【发布时间】:2018-03-29 18:17:17
【问题描述】:
在我的 Dockerfile 中,我尝试安装多个服务,并希望在启动容器时让它们全部自动启动。
其中一项服务是 mysql,当我启动容器时,我没有看到 mysql 服务启动。当我尝试手动启动时,出现错误:
Failed to get D-Bus connection: Operation not permitted
Dockerfile:
FROM centos:7
RUN 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 命令启动服务的容器。
【问题讨论】:
-
您需要使用 systemd 有什么特别的原因吗?使用较小的 docker init 系统之一或将每个容器分成一个服务可能会更容易。
-
不使用systemd,如何启动我的服务?我的容器需要几乎 5-6 个需要启动的服务。其中之一是 mariadb。所以我不能为每个服务单独的容器。如何在上面的 Dockerfile 中创建一个较小的 docker init?您能否举例说明如何在启动时使用 3 个服务(mariadb、httpd、sshd)来启动容器
-
你有在容器中运行 systemd 的运气吗?
标签: docker containers