在Docker容器内自动启动服务



我正试图在Docker容器中启动一个类似Apache2 automatic的服务

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并不是在容器中自动启动的。

容器本身无法启动传统意义上的服务,例如使用upstart或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参考资料。

最新更新