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

Docker容器运行一天后退出,如何使其持续运行?

解决Docker容器自动退出的问题

容器运行一天后退出,核心原因是容器内的前台主进程终止了——Docker容器的生命周期和主进程绑定,主进程结束容器就会停止。你之前用的命令格式也有问题,-p参数需要指定「主机端口:容器端口」的映射关系,而且缺少维持容器运行的关键配置。

下面是具体的解决方法:

1. 修正启动命令,确保容器有持续运行的进程

如果你的镜像本身没有默认的长期运行进程,启动时可以指定一个保持容器活跃的命令,比如:

docker run -d --name <container_name> -p <host_port>:<container_port> <你的镜像名> tail -f /dev/null

参数说明:

  • -d:让容器在后台运行
  • --name:给容器指定一个自定义名称,方便后续管理(可选)
  • -p <host_port>:<container_port>:正确的端口映射格式,比如要把主机的8080端口映射到容器的80端口,就写-p 8080:80
  • tail -f /dev/null:通过持续读取空设备文件,让容器保持一个前台进程,避免主进程结束导致容器退出

2. 给容器配置自动重启策略

如果是容器内的服务意外崩溃导致退出,可以添加自动重启规则,让容器在退出后自动重启:

docker run -d --name <container_name> -p <host_port>:<container_port> --restart always <你的镜像名>
  • --restart always:不管容器退出的原因是什么,都会自动重启
  • 也可以用--restart unless-stopped:只有当你手动停止容器时,才不会自动重启,其他情况都会重启

3. 优化自定义镜像(如果你自己构建镜像的话)

如果是你自己构建的镜像,最好在Dockerfile里指定默认的长期运行启动命令,比如你的应用服务启动命令:

# 示例:假设你的应用启动命令是./run-service
CMD ["./run-service"]

构建镜像后,直接用下面的命令启动即可,无需额外加维持进程的命令:

docker run -d --name <container_name> -p <host_port>:<container_port> <你的镜像名>

内容的提问来源于stack exchange,提问作者Atharva Deshpande

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:05:25