docker start 是什么
启动一个已经存在但处于停止状态的容器。它复用原容器的全部配置与可写层:端口、挂载、环境变量、网络都沿用创建时固化的值,数据也仍在文件系统里。它不做重新创建,所以任何创建期配置都无法通过它修改。
基本信息
| 语法 | docker start [选项] CONTAINER... |
|---|---|
| 常用选项 | -a 附着到容器输出 -i 保持标准输入 |
| 特点 | 复用原容器与数据,不重新创建 |
| 前置条件 | 容器已存在且处于停止状态 |
| 与前台的差异 | 启动后默认在后台运行,输出需要另取 |
典型使用场景
- 维护后恢复:计划内停机结束后把服务重新启动起来
- 调试结束后复产:临时停止容器排查问题,完事再启动回来
- 宿主机重启后手工恢复:没配自动重启策略时按清单逐个启动
- 重放数据:停止后的容器保留可写层内容,启动后继续用原有数据运行
- 批量恢复:按标签筛出停止的容器统一启动
常用示例
常用示例
docker start web # 后台启动
docker start -ai web # 附着并保持输入,便于观察
docker start $(docker ps -aq --filter label=env=dev) # 按标签批量启动
docker ps --filter status=exited --format '{{.Names}}' # 先看有哪些已停止的
docker logs --tail 50 web # 启动后确认输出能改与不能改
| 配置项 | 启动能否修改 | 需要怎么做 |
|---|---|---|
| 端口映射 | 不能 | 删除容器后重新创建 |
| 挂载与卷 | 不能 | 删除容器后重新创建 |
| 环境变量 | 不能 | 删除容器后重新创建 |
| 网络接入 | 不能 | 删除容器后重新创建,或按引擎能力增减网络 |
| 重启策略 | 可以 | 用更新命令在线调整 |
| 资源限制 | 部分可以 | 内存与处理器配额一般可在线调整 |
启动后要确认的事
- 看状态是否稳定,避免启动后又立刻退出
- 看日志确认应用完成了初始化,尤其是数据库类服务
- 确认端口从外部可达,避免服务正常但入口不通
- 确认依赖服务同样已恢复,否则应用会反复重试
- 确认监控恢复采集,避免恢复过程无人察觉
它不会重新拉取镜像、不会重新读取环境变量文件、不会重新执行初始化脚本。这些动作都发生在创建容器时,停止状态只是进程被中止。
附着到容器输出后按中断组合键,信号会传给容器主进程,可能把刚启动的服务又停掉。生产环境只做后台启动,观察输出用日志命令。