我正在尝试使用 Apache 和 PHP 程序运行一个简单的 Docker 映像。如果我跑的话效果很好
docker run -t -i -p 80:80 my/httpd /bin/bash
然后手动启动Apache
service httpd start
但是我无法让 httpd 在运行时自动启动
docker run -d -p 80:80 my/httpd
Apache 将启动,然后容器就存在。我尝试过很多不同的CMD
s 在我的 docker 文件中
CMD /etc/init.d/httpd start
CMD ["service" "httpd" "start"]
CMD ["/bin/bash", "/etc/init.d/httpd start"]
ENTRYPOINT /etc/init.d/httpd CMD start
CMD ./start.sh
启动.sh是
#!/bin/bash
/etc/init.d/httpd start
但是每次 docker 实例在 apache 启动后都会存在
我是否遗漏了一些非常明显的东西?
您需要直接运行 apache (httpd) - 您不应该使用 init.d 脚本。
两种选择:
- 你必须在前台运行 apache:
/usr/sbin/apache2 -DFOREGROUND ...
(或 CentOS 中的 /usr/sbin/httpd)
- 你必须通过执行来启动所有服务(包括配置为自动运行的apache)
/sbin/init
作为入口点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)