首页/云/云与容器速查/docker start 启动已存在容器
容器与 Docker106 条

docker start 启动已存在容器

重新启动一个已创建/已停止的容器:保留原有配置与数据;start 不会应用新参数,改端口/挂载要删了重建。

云与容器速查云更新于 2026-10-13

docker start 是什么

docker start 用于重新启动一个已经存在的容器,容器创建时的配置、网络、卷挂载与容器内文件改动都会保留。它与 run 的分工很清楚:run 新建容器,start 把已有容器拉起来;想改端口或挂载参数只能删除重建,start 不接受新的运行时参数。

基本信息

与 run 区别start 复用已有容器,run 新建容器
保留内容配置、网络、卷挂载与容器内的文件改动
附加输出加 -a 前台附加到容器输出
批量操作可一次传入多个容器名或 ID
自动恢复配合重启策略,机器重启后可自动拉起
适用场景机器重启后恢复、暂停后继续、临时停服维护

使用示例

使用示例
docker ps -a                                   # 找到已停止的容器
docker start myapp                             # 后台启动,保留原配置
docker start -a myapp                          # 前台附加输出
docker start web db cache                      # 一次启动多个容器
docker update --restart unless-stopped myapp   # 让机器重启后自动拉起

典型使用场景

  • 宿主机重启后把之前停掉的业务容器重新拉起来
  • 临时停服维护后恢复服务,无需重新准备启动参数
  • 排查问题时只重启单个容器,避免影响同机其他服务
  • 给运行中的容器补上重启策略,减少人工恢复动作
start 不会应用新的运行时参数:端口、环境变量、挂载路径的任何改动都必须删除容器后重建,停止再启动做不到。
想让容器在机器重启后自动恢复,要在 run 时或之后配置重启策略;默认策略下容器不会自己起来。
docker start -a 之后按 Ctrl-C 会向容器发送中断信号,可能直接把服务停掉;只想看日志请用 docker logs -f。
启动失败时 start 只给出一个错误码,细节要看 logs 与 inspect 的状态字段;如果容器启动后立刻退出,通常是主进程命令执行完就结束,或者配置项本身有误。
要把 start 与重启策略区分开:重启策略由守护进程在容器异常退出后自动执行,start 则是人工触发的一次启动;排障时先看退出码与状态,再决定是重启还是重建。

易错点

  • 想改端口先 stop 再 start:参数不会生效,必须删除重建
  • 机器重启后容器没自动起来:没配重启策略
  • 在 -a 前台里按 Ctrl-C:把正在服务的容器停掉
  • 直接 start 很久没用过的容器:镜像与配置已过时,状态和预期不符
  • 用 start 替代编排工具:多容器依赖顺序靠人工,容易漏起

数据来源与参考

  • Docker Docs:docker start

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌