docker – 如何终止容器启动的进程

前端之家收集整理的这篇文章主要介绍了docker – 如何终止容器启动的进程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个容器,我想杀死一个用来启动容器的进程. Dockerfile的最后一行是CMD [“python”,“app.py”]

我这样做而不是仅仅停止容器的原因是我要杀死进程,将bash压入容器,更改一些文件,然后再次启动进程.如果我杀了整个容器,那么我无法进入并更改文件.

如果有更好的方法来实现我的目标,那么我宁愿这样做.我是码头工人的新手,所以我可能会遗漏一些东西.

这就是我所做的,这是行不通的.

➜  $docker top mycontainer
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                1447                1226                0                   01:21               ?                   00:00:04            python app.py

➜  $docker exec -it mycontainer ps -aux
USER       PID %cpu %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.5 20.6 1225304 210344 ?      Ssl  01:21   0:04 python app.py
root        61  0.0  0.2  15572  2208 ?        Rs+  01:35   0:00 ps -aux

➜  $docker exec -it mycontainer kill -9 1
➜  $docker top mycontainer
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                1447                1226                0                   01:21               ?                   00:00:04            python app.py
最佳答案
我有一个类似的问题.我无法杀死进程1.
所以我必须先运行另一个进程.我选择使用bash进程,重启循环.

我正在使用Docker-compose,所以我的容器命令文件最终看起来像这样:

bash -c "echo 'Starting'; while true; do python -u app.py; sleep 4; echo 'restarting'; done"

直接使用Docker时可能类似.

猜你在找的Docker相关文章