私はdockerenvorinmentsを自動化するために作業を開始しています。次に、単純なLAMPものを構築しようとしDockerfileています。次のとおりです。
FROM centos:7
ENV container=docker
RUN yum -y swap -- remove systemd-container systemd-container-libs -- install systemd systemd-libs
RUN yum -y update; yum clean all; \
(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
RUN yum -y update && yum clean all
RUN yum -y install firewalld httpd mariadb-server mariadb php php-mysql php-gd php-pear php-xml php-bcmath php-mbstring php-mcrypt php-php-gettext
#Enable services
RUN systemctl enable httpd.service
RUN systemctl enable mariadb.service
#start services
RUN systemctl start httpd.service
RUN systemctl start mariadb.service
#Open firewall ports
RUN firewall-cmd --permanent --add-service=http
RUN firewall-cmd --permanent --add-service=https
RUN firewall-cmd --reload
EXPOSE 80
CMD ["/usr/sbin/init"]
だから私がイメージを構築するとき
docker build -t myimage .
次に、コードを実行すると、次の間違いが発生します。
The command '/bin/sh -c systemctl start httpd.service' returned a non-zero code: 1
インタラクティブモードに入ると(コマンドをジャンプしRUN systemctl start httpd.serviceて画像を再構築します):
docker run -t -i myimage /bin/bash
そして、サービスhttpdを手動で開始しようとすると、次の間違いが発生します。
Failed to get D-Bus connection: No connection to service manager.
だから、私は何が間違っているのか分かりませんか?