首页 > 解决方案 > 在容器内调试时保持 docker 容器运行

问题描述

在我的 Dockerfile 中,我有CMD java -jar a.jar. 然后我启动了容器。然后我想 ssh 进入容器并杀死 a.jar 进程并运行java -jar b.jar. 所以我跑了docker exec -it <CONTAINER_ID> /bin/bash,然后终止了进程,但容器立即停止了。有没有办法在我杀死主进程后保持容器运行,以便我可以运行另一个进程?

标签: docker

解决方案


你的容器正在死亡,因为启动容器的进程,在你杀死它后进程 id 1 死亡。

如果要启动容器并终止 java 进程,可以在 docker run 中覆盖 CMD 并附加一个即使您终止 java 进程也会运行的命令。

例如:docker run ... mycontainer java -jar a.jar & sleep infinity


推荐阅读