我正试图在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参考资料。