直接用 docker start 就能唤醒已停止但未删除的容器,使其从 exited 状态恢复为 running 状态;前提是容器存在且状态为 created 或 exited,启动后原配置(端口、卷、环境变量等)自动恢复,不创建新容器。
直接用 docker start 就能唤醒一个已停止但未删除的容器,让它从 exited 状态回到 running 状态。关键前提是容器必须还存在(即没被 docker rm 删除),且其配置(如端口映射、挂载卷、环境变量等)在创建时已固化,启动后会原样恢复。
确认容器是否可被启动
只有状态为 created 或 exited 的容器才能被 start。运行中或暂停中的容器执行该命令无效。
- 运行
docker ps -a查看全部容器,重点关注 STATUS 列 - 找到目标容器的 NAME 或前几位 CONTAINER ID(唯一即可)
- 若显示
Exited (0)或Created,说明它处于可启动状态
执行 docker start 启动容器
命令本身简洁,但需注意名称/ID输入准确,不区分大小写,只要前缀能唯一识别即可。
- 启动单个容器:
docker start my-nginx或docker start a1b2c3d4 - 启动多个容器:
docker start web-app db-cache redis - 启动后不会输出日志,可用
docker ps验证是否进入Up状态
启动后如何验证和交互
启动只是让容器进程跑起来,不代表服务一定就绪——比如 MySQL 可能还在初始化,Nginx 可能监听延迟几秒。建议配合检查:
- 查看实时日志:
docker logs -f my-nginx(-f表示持续跟踪) - 进入容器调试:
docker exec -it my-nginx /bin/sh(根据镜像选/bin/bash或/bin/sh) - 检查端口连通性:
curl http://localhost:8080或telnet localhost 3306
常见问题与应对
启动失败通常不是命令错误,而是容器内部主进程无法启动所致。
-
“Error response from daemon: No such container”:名字输错,或容器已被
rm删除 - “Error starting container: driver failed programming external connectivity”:端口被占,需先释放或改映射
-
启动后立即退出(
Exited (1)):主进程崩溃,查docker logs <name>找错误原因,常见于配置文件缺失、挂载路径权限不足、依赖服务未就绪等


















