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

如何启动已停止的Docker容器并进入交互式终端?

问题原因

容器的生命周期和它启动时执行的初始命令绑定:当这个命令执行完成(退出),容器就会停止。

  • 你用docker run -it <image_name>时,默认会启动一个交互式shell(比如/bin/bash或sh),这个shell会一直运行直到你手动退出,所以容器能保持活跃。
  • 但如果你的已停止容器当初创建时的初始命令不是交互式shell(比如是一次性脚本、echo命令等),那用docker start -ia <container_name>启动时,它还是会执行这个一次性命令,命令结束后容器立刻停止。
解决方案

根据你复用容器作为沙箱/开发环境的需求,提供两种可行方案:

方案1:适配已停止的容器

  1. 先查看容器原来的启动命令,确认是否为一次性命令:
    docker inspect <container_name> --format '{{.Config.Cmd}}'
    
  2. 将已停止的容器打包为新镜像,再用新镜像启动交互式容器:
    # 提交容器为新镜像
    docker commit <container_name> my-dev-image
    # 用新镜像启动交互式容器
    docker run -it --name my-dev-container my-dev-image
    
    新容器启动后会进入交互式shell,退出后容器停止,下次直接用docker start -ia my-dev-container就能重新进入。

方案2:创建可复用的开发容器(推荐)

直接在创建容器时指定交互式shell作为启动行为,确保容器能持续运行方便复用:

# 创建并后台启动交互式容器
docker run -itd --name my-dev-sandbox <image_name>
  • 需要进入容器时执行:
    docker exec -it my-dev-sandbox /bin/bash
    
  • 退出容器时用exit,容器会继续在后台运行,下次直接用上述exec命令进入即可。

如果镜像默认没有bash,可替换为sh:

docker exec -it my-dev-sandbox /bin/sh

内容的提问来源于stack exchange,提问作者Kevin Shu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 01:45:57