"docker stop"、"docker kill" 和 "docker -f rm" 都不起作用

Neither "docker stop", "docker kill" nor "docker -f rm" works

尝试使用上述任一命令从 this image 停止容器会导致 docker 无限期等待。容器仍然可以在 docker ps 输出中观察到。

抱歉新手问题,如何正确停止容器?

根据 hub.docker.com 上的说明,此容器首先 运行,按 Ctrl+C 停止,然后按 docker start <containter-name> 再次启动。启动后,它从未按预期工作。

docker stop <container-name> 是停止容器的正确方法。可能里面发生了什么,你可以尝试使用 docker logs <container-name> 来给你更多关于里面 运行 的信息。

你的测试对我有用:

→ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
853e36b8a952        jleight/opentsdb    "/usr/bin/supervisord"   9 minutes ago           Up 9 minutes        0.0.0.0:4242->4242/tcp   fervent_hypatia

→ docker stop fervent_hypatia
fervent_hypatia

→ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

花了一点时间,但我认为这是因为 Docker 图像正在使用主管进程,所以 SIGTERM(这是 docker 停止首先发送的)不会杀死容器,但是 SIGKILL,默认情况下应该在 10 秒后发送(我的等待时间约为 10 秒)。

以防万一您的默认值由于某种原因而被弄乱,请尝试明确指出超时:

docker stop --time=2 <container-name>