【问题标题】:How does "docker service rm" kills a service? Which signal does it send to the service?“docker service rm”如何杀死服务?它向服务发送哪个信号?
【发布时间】:2022-01-26 09:50:42
【问题描述】:

“docker service rm”如何杀死服务?它究竟向服务发送了哪个信号?

【问题讨论】:

    标签: docker docker-swarm


    【解决方案1】:

    它应该针对运行它的节点上的容器调用 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)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多