无法与docker容器交互:停止,rm,检查...命令行卡住了

时间:2019-02-04 17:36:15

标签: docker

我的Docker集群中有几个容器出现问题。我试图阻止他们,但没有任何反应。每次我尝试与它们进行交互(检查,控制台,杀死,甚至使用-f进行rm命令)都不会发生任何事情,并且命令行会卡住,直到我按Ctrl + C为止。有趣的是,docker ls将其显示为“健康”。

重启docker服务似乎是此类行为的常用解决方案,但就生产环境而言,它运行着许多其他服务,我无法做到这一点。其余的容器,服务,堆栈...按预期工作。

是否有其他方法可以删除/杀死该容器?

xxxxx1 amancevice/superset:0.27.0  "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              prd_yyyy_superset_dashboard.
xxxxx2 xxxxxxx/mysql-xxxxxx:5911   "docker-entrypoint.s…"   2 months ago        Up 2 months             3306/tcp                                              prd_yyyy_api_mysql.1.
xxxxx3 amancevice/superset:0.27.0  "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              prd_yyyy_superset_dashboard.1

Docker版本17.12.0-ce,内部版本c97c6d6

更新: 我刚刚发现我的Docker集群中有更多具有相同行为的“健康”容器。我无法以任何方式与他们互动,无法杀死,重新启动,检查,移除或什么也不做。他们就在那里

d7c13e9d8115        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              
7137cf54fe56        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              prd_avis_superset_dashboard.1.s5x7cktaiwhv6juv6f7nmpfv6
43fe34109330        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              
ccf45223b412        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              
253f411cd403        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              prd_philips_superset_dashboard.1.qfyufa6flfzz0vgqebkzu1432
ff14a3967b7b        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              
987f22985036        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              
27f42f0733aa        kibana:5.6.11                                      "/docker-entrypoint.…"   2 months ago        Up 2 months (healthy)   5601/tcp                                              
b77a12659bcc        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              
628842bc6e2a        amancevice/superset:0.27.0                         "gunicorn superset:a…"   2 months ago        Up 2 months (healthy)   8088/tcp                                              

更新2:FIX 我不知道这是否是更好的方法,但最终我发现取消进程似乎是更简单的重新启动服务的方法。

只需使用以下方法获取进程ID:

# ps -ef | grep 43fe34109330
root      8789 32768  0  2018 ?        00:00:40 docker-containerd-shim -namespace moby -workdir /var/lib/docker/containerd/daemon/io.containerd.runtime.v1.linux/moby/43fe3410933077a0f6c98cbbc04e4db4d2eae1b37f073059b4f76a4f8478dd15 -address /var/run/docker/containerd/docker-containerd.sock -containerd-binary /usr/bin/docker-containerd -runtime-root /var/run/docker/runtime-runc

并用

杀死它
#kill 8789

容器终于结束了,我能够再次创建它。

1 个答案:

答案 0 :(得分:-1)

尝试使用 docker exec 杀死容器中的 gunicorn 进程,即使我怀疑如果容器被冻结也能奏效。