我结束我的Debian Dockerfile这些行:保活Docker容器与supervisord
EXPOSE 80 22
COPY etc/supervisor/conf.d /etc/supervisor/conf.d
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
在/etc/supervisor/conf.d/start.conf
文件:
[program:ssh]
command=/usr/sbin/service ssh restart
[program:nginx]
command=/usr/sbin/nginx -g 'daemon off;'
[program:systemctl]
command=/bin/systemctl daemon-reload
[program:systemctl]
command=/bin/systemctl start php7-fpm.service
如果我尝试运行使用下面的命令该码头工人形象:
$ docker run -d -p 8080:80 -p 8081:22 lanti/debian
它立即停止运行。如果我试图在前台运行它:
$ docker run -it -v /home/core/share:/root/share -p 8080:80 -p 8081:22 lanti/debian
这是一样的,立即退出。如果我使用bash CMD运行:
$ docker run --rm -it -v /home/core/share:/root/share -p 8080:80 -p 8081:22 lanti/debian bash
它保持活跃在控制台,而是由上级的预定义的命令无法运行,所以我需要运行$ service supervisor restart
容器内,否则的Nginx和SSH将不会启动。
我如何开始与多个命令泊坞窗容器在启动时运行?在过去,我在主机操作系统下的systemd文件中使用了ExecStartPost
行,但是由于这种原因,systemd文件变得复杂,所以我尝试将预启动命令移动到容器中,以便在任何类型的启动时自动运行。
这搬运工容器将有nginx的,PHP,SSH,在未来的phpmyadmin和mysql。我不想要多个容器。
谢谢你的帮助!
使用多克尔典型的方法是每容器1点的过程。你可以用docker-compose @lanti轻松做到这一点 – Fuxi
我明白了。所以我可以连接让我们说一个PHP + Nginx容器与MySQL容器?将nginx + php保存在同一个容器中是一个好主意吗?我从主管那里删除了systemd。我跟着一个不是码头工的教程。现在主管也启动php-fpm。 – Lanti