我有一个运行在 Docker 容器中的服务器端应用程序。其中的一个进程挂起了,需要被终止掉(然后该应用程序将生成另一个进程来替换它)。
有没有办法杀死这个进程而不停止 Docker 容器?
有没有办法杀死这个进程而不停止 Docker 容器?
目前Docker还不能做到这一点,但好像计划在0.8版本中实现,详见issue #1228 这里。
不过,你可以使用lxc-attach在一个已存在的容器中运行shell(上述问题评论中提到),然后从那里结束挂起的进程:
$ lxc-attach -n FULLCONTAINERID /bin/bash
docker ps
时,docker kill 593690fe0087
杀死了CONTAINER ID
。我有一个容器在那里待了两个星期,直到环境没有启动才发现它。root@turmes /home/zoobab [35]# docker ps --no-trunc=true CONTAINER ID IMAGE > COMMAND C STATUS PORTS NAMES 2741d88a51148e66d7b2b44d8c1cc6ed7d1515f370be5d00bd003d40cf8d575b zoobab/centos57:latest kamailio -P /var/run/kamailio.pid -m 64 -M 4 -u kamailio -g kamailio -D 1 Up 19 minutes angry_fermat
root@turmes /home/zoobab [36]#
现在您可以使用 Docker 1.3 中的 exec
命令 来执行此操作:
docker exec container_name kill process_name