【发布时间】:2018-12-03 13:32:33
【问题描述】:
我已经为我的节点应用程序设置了一个 Docker 容器并使用它运行它
docker run -p 4500:4500 my_node_app
它以无守护模式启动 pm2。 CTRL+C 和退出不起作用。我在另一个终端窗口中尝试过 docker stop my_node_app 但无济于事。 感谢任何帮助。
【问题讨论】:
我已经为我的节点应用程序设置了一个 Docker 容器并使用它运行它
docker run -p 4500:4500 my_node_app
它以无守护模式启动 pm2。 CTRL+C 和退出不起作用。我在另一个终端窗口中尝试过 docker stop my_node_app 但无济于事。 感谢任何帮助。
【问题讨论】:
您将能够使用以下命令查看当前正在运行的 docker 容器。
docker ps
然后复制运行容器的CONTAINER ID,执行如下命令
docker stop <container_id>
请用实际值替换。
【讨论】:
dockerd。
docker kill 的答案是正确的答案,直到我读到superuser.com/questions/756999/…,所以值得指出的是 stop 实际上会杀死容器。它只是通过试图礼貌(起初)杀死它。 :-)
如果您还不知道容器名称,请使用docker container ls 查找容器名称,然后使用docker kill container_name。
【讨论】:
docker ps -a -q有什么区别?
你可以试试这个,很简单的脚本
docker container kill $(docker ps | awk '/lookup_value/ {print $1}')
解释
以表格结构列出容器
docker ps
结果
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
763e1a00808e 7bb2586065cd "docker-entrypoint.s…" 2 months ago Up 2 weeks 3306/tcp, 33060/tcp mysql_1
763e1a00999b 7bb2586065cd "docker-entrypoint.s…" 1 months ago Up 2 weeks 3307/tcp, 33061/tcp mysql_2
隔离你的容器
awk /mysql_1/
结果
763e1a00808e 7bb2586065cd "docker-entrypoint.s…" 2 months ago Up 2 weeks 3306/tcp, 33060/tcp mysql_1
隔离第一个选项卡值,即容器 ID
awk ' /mysql_1/ {print $1}'
结果
763e1a00808e
因此,总而言之,这将隔离并发送 kill 或 stop 命令与图像名称匹配的容器 id
【讨论】:
docker container kill $(docker ps | awk '/image_name/ {print $1}') 来保存您的 fork
grep,这实际上是一个非常有用的答案。但是,由于 grep 的使用不好,很难对其进行投票。
【讨论】: