相关疑难解决方法(0)

在码头工人中使用主管

我不是在询问使用码头工人的主管,而只是想让我的理解得到验证.

我知道docker在运行时会运行一个进程.此外,当我们需要在容器内运行多个进程时,使用supervisor.

我看过几个例子,其中一个容器是从基本映像启动的,并且安装了几个服务,并且容器被提交以形成一个新的映像,所有这些都没有supervisor.

所以,我的基本疑问是两种方法之间的区别.

我的理解是当docker容器停止时它向PID进程发送一个kill信号,PID 1管理子进程并停止所有的子进程,这正是supervisor所做的,而我们可以安装多个进程而不需要supervisor 发出docker run时可以运行进程,当容器停止时,只有PID 1发送信号,其他正在运行的进程不会正常停止.

请确认我对使用supervisord的理解是否正确.

谢谢

supervisord docker

33
推荐指数
2
解决办法
2万
查看次数

为什么对于某些 docker 镜像,CTRL+C 不会终止“docker run”命令?

使用此图像(Caddy 网络服务器):

docker run --rm -p 80:80 caddy:latest 
Run Code Online (Sandbox Code Playgroud)

我可以通过在终端内发送 CTRL+C来阻止它。

其他一些图像不会以这种方式工作,例如 MariaDB:

docker run -it --rm -p 3306:3306 -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:latest
Run Code Online (Sandbox Code Playgroud)

我无法用 CTRL+C 停止它

我注意到在 Caddy 中Dockerfile没有butENTRYPOINT only CMD,而 MariaDB 有 anENTRYPOINT和 a CMD。

为什么?有什么理由不支持终止信号的处理吗?SIGTERM如果这是原因的话,如何支持docker 入口点呢?

docker

7
推荐指数
1
解决办法
1001
查看次数

标签 统计

docker ×2

supervisord ×1