shell 杀死Docker容器

brc7rcf0  于 11个月前  发布在  Shell
关注(0)|答案(5)|浏览(145)

我已经为我的节点应用程序设置了一个Docker容器,并使用

docker run -p 4500:4500 my_node_app

字符串
它在无守护程序模式下启动了pm2。CTRL+C和退出不起作用。我在另一个终端窗口中尝试了docker stop my_node_app,但没有用。感谢任何帮助。

ghg1uchk

ghg1uchk1#

你可以使用下面的命令查看当前运行的Docker容器。
第一个月
然后复制正在运行的容器的CONTAINER ID并执行以下命令
docker stop <container_id>
请替换为真实的值。

7fhtutme

7fhtutme2#

你可以试试这个,非常简单的脚本

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

agyaoht7

agyaoht73#

执行docker container ls以查找容器名称(如果您还不知道它),然后执行docker kill container_name
来源:Docker文档

pb3skfrl

pb3skfrl4#

1.“Docker container ls“查看现有容器
1.“Docker container kill container_id”强制终止或“docker container stop container_id”优雅终止

pgccezyw

pgccezyw5#

替代AWS

docker kill $(docker ps -q)

字符串
docker ps -q获取所有容器的id
docker kill $(docker ps -q)命令用于停止运行容器。
分解一下:
docker ps -q:这部分命令用于列出当前运行的Docker容器的ID。-q选项代表“quiet”,用于仅显示容器ID,不显示任何其他信息。
$(docker ps -q):这个命令替换语法($(...))接受docker ps -q的输出(这是一个容器ID列表)并将其替换到整个命令中。
docker kill:发送信号停止正在运行的容器。它相当于运行docker stop,但默认信号为SIGKILL,强制终止容器。
综合起来,docker kill $(docker ps -q)通过从docker ps -q的输出中获取所有正在运行的Docker容器的ID,然后使用docker kill向每个已识别的容器发送停止信号,从而停止所有正在运行的Docker容器。
当你想快速停止Docker主机上所有正在运行的容器时,此命令非常有用。请记住,这会强制终止容器,并且这些容器中任何未保存的数据或状态都可能丢失。请谨慎使用,尤其是在生产环境中。

相关问题