Docker Alpine linux运行2个程序

2024-04-25 13:31:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用alpine linux创建docker镜像,运行后将创建包含2个运行程序的容器。这个2(在我看来-我不太了解docker)不能分开,因为第一个程序更改了seconds配置文件,然后应该重新启动那个程序。

我正在努力如何运行这两个程序。我已经添加了自己的脚本,应该运行该程序,但我遗漏了一些东西-脚本是2行,每行是运行该程序的命令-它只启动第一个程序。

在带有python子进程和systemctl命令的ubuntu中,我重新启动运行服务,但在alpinlinux中,它是作为程序运行的,我不知道如何重新启动/重新加载它。

谢谢你的帮助


Tags: docker命令程序脚本镜像进程ubuntulinux
4条回答

您需要在后台运行第一个程序,以便执行脚本的第二行。

每当有两个进程必须在一个容器中运行时,就有zombie processes的风险(即容器无法将SIGKILL信号正确传递给所有进程)。
用作基本映像^{}:它用于管理多个进程。

我建议看看supervisord方法。你可以在docker documentation中找到如何使用它。

例如:

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

相关问题 更多 >