[英]Docker Alpine linux running 2 programs
我正在嘗試使用 alpine linux 創建 docker 鏡像,運行后將創建包含 2 個正在運行的程序的容器。 這 2(在我看來——我不太了解 docker)不能分開,因為第一個程序更改了秒配置文件,然后也應該重新啟動該程序。
我正在努力如何運行這兩個程序。 我已經添加了自己的腳本,它應該運行該程序,但我遺漏了一些東西——腳本是每行 2 行,是運行該程序的命令——它只啟動第一個程序。
在帶有 python 子進程和systemctl
命令的 ubuntu 中,我重新啟動正在運行的服務,但在 alpine linux 中,它作為程序運行,我不知道如何重新啟動/重新加載它。
我建議看看supervisord方法。 您可以在docker 文檔中找到如何使用它。
一些例子:
1. Dockerfile
是:
FROM alpine:latest
RUN apk update && apk add --no-cache supervisor openssh nginx
COPY supervisord.conf /etc/supervisord.conf
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]
2. supervisord.conf
是:
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
[program:nginx]
command=nginx -c /etc/nginx/nginx.conf
您需要在后台運行第一個程序才能執行腳本的第二行。
每當您有兩個進程必須在一個容器內運行時,就會存在僵屍進程的風險(即容器不會將 SIGKILL 信號正確傳遞給所有進程)。
用作您的基礎圖像phusion/baseimage-docker
:它是為管理多個進程而制作的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.