2

我正在尝试在 Docker 容器中自动启动像 Apache2 这样的服务

My Dockerfile:
FROM ubuntu:14.04

RUN apt-get update
RUN apt-get -y install apache2
ADD ./startup.sh /opt/startup.sh
RUN chmod +x /opt/startup.sh
CMD ["/bin/bash", "/opt/startup.sh"]
RUN /opt/startup.sh

My startup.sh:
#!/bin/bash
service apache2 start

但是 Apache2 不会在容器中自动启动。

4

1 回答 1

4

容器本身无法启动您习惯的传统意义上的服务,例如。通过使用新贵或 systemd。所以你只需要手动启动apache...

FROM ubuntu:14.04
RUN apt-get update
RUN apt-get -y install apache2

EXPOSE 80 443
ENTRYPOINT ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

请记住,当您启动容器时,您需要使用-p参数正确映射端口。dockerfile 不处理任何VOLUMES,这只是安装 apache2 并启动它。如果您需要了解它们是如何工作的,您需要查阅Dockerfile 参考

于 2016-05-17T13:18:43.300 回答