Docker compose 加速docker compose关闭
当我将应用程序设置为通过docker compose up运行时,需要几秒钟才能在ctrl+c上停止。但是,如果我运行Docker compose 加速docker compose关闭,docker-compose,Docker Compose,当我将应用程序设置为通过docker compose up运行时,需要几秒钟才能在ctrl+c上停止。但是,如果我运行docker kill…,容器会很快停止。在docker compose up中通过ctrl+c终止时,我可以做些什么来加快容器关闭速度 特别是,当docker compose说它“优雅地停止”时,它实际上意味着什么?docker compose是否正在尝试某种关机协议,然后仅在超时后杀死我的容器 当docker compose说它“优雅地停止”时,它实际上意味着什么 基本上,当
docker kill…
,容器会很快停止。在docker compose up
中通过ctrl+c终止时,我可以做些什么来加快容器关闭速度
特别是,当docker compose说它“优雅地停止”时,它实际上意味着什么?docker compose是否正在尝试某种关机协议,然后仅在超时后杀死我的容器
当docker compose说它“优雅地停止”时,它实际上意味着什么
基本上,当您执行Ctrl+C时,您将向在前台运行的应用程序发送一个SIGINT(2)信号。大多数情况下,此信号的语义类似于执行docker compose stop
时发出的SIGTERM(15)信号,或者更基本地说,如果您专注于单个容器应用程序,则发出的SIGTERM(15)信号
docker compose是否正在尝试某种关机协议,然后仅在超时后杀死我的容器
是的,其思想是运行中的应用程序可以捕获SIGINT和SIGTERM信号,并在退出之前执行一些清理操作
相反,SIGKILL(9)信号(例如由docker kill
引发)会导致进程立即终止
您可能会对这个相关的例子感兴趣,我给出了一个EntryPointBash脚本的玩具示例,它“捕获”了SIGINT和SIGTERM信号(当然不是SIGKILL)
在docker compose up中通过ctrl+c终止时,我可以做些什么来加速容器关闭
我想说,当您执行docker stop
操作时,容器退出所花费的时间很大程度上取决于相应映像的实现
乍一看,您可能会修改(例如缩短)提供给容器的时间,使其正常停止:
docker stop-t超时
docker compose stop-t超时
exec
内置程序。→ 建议使用
exec
(例如,请参见)docker run
标志运行图像,或者添加docker compose.yml
参数