You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让报错退出的Docker容器保持运行以便调试?

让容器保持运行的几种调试方法

当容器内的主进程(此处为ruby /usr/src/app/helloworld.rb)异常退出时,Docker容器会随之停止——因为容器的生命周期与主进程直接绑定。以下是几种让容器保持运行、方便调试的方法:

方法一:临时替换运行命令启动容器

直接在docker run时指定一个长期运行的进程替代原CMD,比如使用bash(需保留交互终端):

docker run -t -d hello-world-ruby bash

容器启动后,执行以下命令进入容器调试:

docker exec -it <容器ID或名称> bash

如果不需要交互环境,也可以用tail -f /dev/null让容器后台持续运行:

docker run -d hello-world-ruby tail -f /dev/null

之后同样通过docker exec命令进入容器。

方法二:临时修改Dockerfile的CMD

修改Dockerfile中的CMD为长期运行的命令,例如:

# 替换原CMD
CMD ["tail", "-f", "/dev/null"]

重新构建镜像并运行,容器会保持运行状态,调试完成后再改回原CMD即可。

方法三:用--entrypoint覆盖入口命令

运行容器时通过--entrypoint参数替换原入口进程,无需修改Dockerfile或重新构建:

docker run -t -d --entrypoint tail hello-world-ruby -f /dev/null

内容的提问来源于stack exchange,提问作者Teoman shipahi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 19:18:37