在Dockerfile中启动服务

J. *_*Doe 5 apache docker

我正在构建一个Docker容器,并在此容器中下载Apache服务。是否可以在某个时候自动启动Apache服务?Systemctl start httpd在Dockerfile内部不起作用。

基本上,我希望在启动Docker容器时启动apache服务。

FROM centos:7
MAINTAINER me <me@me.com>
RUN yum update -y && yum install -y httpd php
RUN (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" ]
EXPOSE 80
EXPOSE 443
CMD ["/usr/sbin/init"]
Run Code Online (Sandbox Code Playgroud)

vmo*_*eco 2

尝试使用CMD ["/usr/sbin/httpd", "-DFOREGROUND"].

您还可以运行:

docker run -d <image name> /usr/sbin/httpd -DFOREGROUND
Run Code Online (Sandbox Code Playgroud)