【发布时间】:2022-01-26 09:50:42
【问题描述】:
“docker service rm”如何杀死服务?它究竟向服务发送了哪个信号?
【问题讨论】:
标签: docker docker-swarm
“docker service rm”如何杀死服务?它究竟向服务发送了哪个信号?
【问题讨论】:
标签: docker docker-swarm
它应该针对运行它的节点上的容器调用 docker stop 的 API。默认情况下,如果容器没有正常退出,docker stop 将在 10 秒后发送一个 SIGTERM,然后是一个 SIGKILL。您可以在不响应 SIGTERM 的命令中看到 10 秒:
$ cat dc.tail.yml
version: "3"
services:
tail:
image: busybox
command: "tail -f /dev/null"
$ docker stack deploy -c dc.tail.yml tail
Creating network tail_default
Creating service tail_tail
$ docker service rm tail_tail
tail_tail
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e06fbf70708 busybox:latest "tail -f /dev/null" 16 seconds ago Up 15 seconds tail_tail.1.jr4j6sl4oad9fst5qey84rbb0
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e06fbf70708 busybox:latest "tail -f /dev/null" 19 seconds ago Up 18 seconds tail_tail.1.jr4j6sl4oad9fst5qey84rbb0
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e06fbf70708 busybox:latest "tail -f /dev/null" 21 seconds ago Up 20 seconds tail_tail.1.jr4j6sl4oad9fst5qey84rbb0
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e06fbf70708 busybox:latest "tail -f /dev/null" 23 seconds ago Up 22 seconds tail_tail.1.jr4j6sl4oad9fst5qey84rbb0
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e06fbf70708 busybox:latest "tail -f /dev/null" 25 seconds ago Up 24 seconds tail_tail.1.jr4j6sl4oad9fst5qey84rbb0
$ docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9e06fbf70708 busybox:latest "tail -f /dev/null" 26 seconds ago Exited (137) Less than a second ago tail_tail.1.jr4j6sl4oad9fst5qey84rbb0
137 退出代码是 128+9,来自 SIGKILL(信号 9)。
【讨论】: