Docker 容器生命周期管理:start/stop/restart 命令详解
-
- 一、核心命令全景图
- 二、docker start 命令深度解析
-
- 2.1 命令架构
- 2.2 参数详解
-
- 2.2.1 基础语法
- 2.2.2 关键参数说明
- 2.3 实战示例
-
- 示例1:基础启动
- 示例2:附加模式启动
- 示例3:批量操作
- 三、docker stop 命令专业指南
-
- 3.1 停止流程剖析
- 3.2 参数详解表
- 3.3 生产环境实践
-
- 优雅停止示例
- 批量停止技巧
- 四、docker restart 命令终极指南
-
- 4.1 重启过程分解
- 4.2 参数对比表
- 4.3 典型应用场景
-
- 配置热更新
- 服务恢复方案
- 五、三命令对比分析
-
- 5.1 功能矩阵
- 六、企业级最佳实践
-
- 6.1 安全停止方案
- 6.2 自动恢复架构
- 6.3 批量操作模板
- 七、常见问题排查指南
-
- 7.1 问题诊断表
- 7.2 调试命令集
- 八、进阶技巧
-
- 8.1 状态保持策略
- 8.2 与docker run的关联
- 8.3 组合命令技巧
- 九、总结
|
🌺The Begin🌺点点关注,收藏不迷路🌺 |
一、核心命令全景图
#mermaid-svg-xpYsLjsEUbCZmvtK {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xpYsLjsEUbCZmvtK .error-icon{fill:#552222;}#mermaid-svg-xpYsLjsEUbCZmvtK .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-xpYsLjsEUbCZmvtK .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-xpYsLjsEUbCZmvtK .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-xpYsLjsEUbCZmvtK .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-xpYsLjsEUbCZmvtK .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-xpYsLjsEUbCZmvtK .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-xpYsLjsEUbCZmvtK .marker{fill:#333333;stroke:#333333;}#mermaid-svg-xpYsLjsEUbCZmvtK .marker.cross{stroke:#333333;}#mermaid-svg-xpYsLjsEUbCZmvtK svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-xpYsLjsEUbCZmvtK .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-xpYsLjsEUbCZmvtK .cluster-label text{fill:#333;}#mermaid-svg-xpYsLjsEUbCZmvtK .cluster-label span{color:#333;}#mermaid-svg-xpYsLjsEUbCZmvtK .label text,#mermaid-svg-xpYsLjsEUbCZmvtK span{fill:#333;color:#333;}#mermaid-svg-xpYsLjsEUbCZmvtK .node rect,#mermaid-svg-xpYsLjsEUbCZmvtK .node circle,#mermaid-svg-xpYsLjsEUbCZmvtK .node ellipse,#mermaid-svg-xpYsLjsEUbCZmvtK .node polygon,#mermaid-svg-xpYsLjsEUbCZmvtK .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-xpYsLjsEUbCZmvtK .node .label{text-align:center;}#mermaid-svg-xpYsLjsEUbCZmvtK .node.clickable{cursor:pointer;}#mermaid-svg-xpYsLjsEUbCZmvtK .arrowheadPath{fill:#333333;}#mermaid-svg-xpYsLjsEUbCZmvtK .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-xpYsLjsEUbCZmvtK .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-xpYsLjsEUbCZmvtK .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-xpYsLjsEUbCZmvtK .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-xpYsLjsEUbCZmvtK .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-xpYsLjsEUbCZmvtK .cluster text{fill:#333;}#mermaid-svg-xpYsLjsEUbCZmvtK .cluster span{color:#333;}#mermaid-svg-xpYsLjsEUbCZmvtK div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-xpYsLjsEUbCZmvtK :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
docker start
docker stop
docker start
docker restart
docker restart
容器状态
运行状态
停止状态
二、docker start 命令深度解析
2.1 命令架构
#mermaid-svg-bz6DPZREowHsZDwL {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bz6DPZREowHsZDwL .error-icon{fill:#552222;}#mermaid-svg-bz6DPZREowHsZDwL .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bz6DPZREowHsZDwL .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-bz6DPZREowHsZDwL .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bz6DPZREowHsZDwL .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bz6DPZREowHsZDwL .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bz6DPZREowHsZDwL .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bz6DPZREowHsZDwL .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bz6DPZREowHsZDwL .marker.cross{stroke:#333333;}#mermaid-svg-bz6DPZREowHsZDwL svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bz6DPZREowHsZDwL .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-bz6DPZREowHsZDwL .cluster-label text{fill:#333;}#mermaid-svg-bz6DPZREowHsZDwL .cluster-label span{color:#333;}#mermaid-svg-bz6DPZREowHsZDwL .label text,#mermaid-svg-bz6DPZREowHsZDwL span{fill:#333;color:#333;}#mermaid-svg-bz6DPZREowHsZDwL .node rect,#mermaid-svg-bz6DPZREowHsZDwL .node circle,#mermaid-svg-bz6DPZREowHsZDwL .node ellipse,#mermaid-svg-bz6DPZREowHsZDwL .node polygon,#mermaid-svg-bz6DPZREowHsZDwL .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-bz6DPZREowHsZDwL .node .label{text-align:center;}#mermaid-svg-bz6DPZREowHsZDwL .node.clickable{cursor:pointer;}#mermaid-svg-bz6DPZREowHsZDwL .arrowheadPath{fill:#333333;}#mermaid-svg-bz6DPZREowHsZDwL .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-bz6DPZREowHsZDwL .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-bz6DPZREowHsZDwL .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-bz6DPZREowHsZDwL .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-bz6DPZREowHsZDwL .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-bz6DPZREowHsZDwL .cluster text{fill:#333;}#mermaid-svg-bz6DPZREowHsZDwL .cluster span{color:#333;}#mermaid-svg-bz6DPZREowHsZDwL div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-bz6DPZREowHsZDwL :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
启动
状态更新
返回结果
用户
命令行
Docker引擎
容器进程
2.2 参数详解
2.2.1 基础语法
docker start [OPTIONS] CONTAINER [CONTAINER...]
2.2.2 关键参数说明
| -a, –attach | 附加到容器的STDOUT/STDERR | 调试容器启动过程 |
| -i, –interactive | 保持STDIN打开 | 交互式容器操作 |
| (无参数) | 后台启动 | 生产环境常规用法 |
2.3 实战示例
示例1:基础启动
docker start my_web_server
流程图:
#mermaid-svg-kScrzELrynr3JVmX {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-kScrzELrynr3JVmX .error-icon{fill:#552222;}#mermaid-svg-kScrzELrynr3JVmX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-kScrzELrynr3JVmX .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-kScrzELrynr3JVmX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-kScrzELrynr3JVmX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-kScrzELrynr3JVmX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-kScrzELrynr3JVmX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-kScrzELrynr3JVmX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-kScrzELrynr3JVmX .marker.cross{stroke:#333333;}#mermaid-svg-kScrzELrynr3JVmX svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-kScrzELrynr3JVmX .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-kScrzELrynr3JVmX text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-kScrzELrynr3JVmX .actor-line{stroke:grey;}#mermaid-svg-kScrzELrynr3JVmX .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-kScrzELrynr3JVmX .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-kScrzELrynr3JVmX #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-kScrzELrynr3JVmX .sequenceNumber{fill:white;}#mermaid-svg-kScrzELrynr3JVmX #sequencenumber{fill:#333;}#mermaid-svg-kScrzELrynr3JVmX #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-kScrzELrynr3JVmX .messageText{fill:#333;stroke:#333;}#mermaid-svg-kScrzELrynr3JVmX .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-kScrzELrynr3JVmX .labelText,#mermaid-svg-kScrzELrynr3JVmX .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-kScrzELrynr3JVmX .loopText,#mermaid-svg-kScrzELrynr3JVmX .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-kScrzELrynr3JVmX .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-kScrzELrynr3JVmX .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-kScrzELrynr3JVmX .noteText,#mermaid-svg-kScrzELrynr3JVmX .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-kScrzELrynr3JVmX .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-kScrzELrynr3JVmX .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-kScrzELrynr3JVmX .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-kScrzELrynr3JVmX .actorPopupMenu{position:absolute;}#mermaid-svg-kScrzELrynr3JVmX .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-kScrzELrynr3JVmX .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-kScrzELrynr3JVmX .actor-man circle,#mermaid-svg-kScrzELrynr3JVmX line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-kScrzELrynr3JVmX :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
User
Docker
Container
start my_web_server
发送启动信号
返回运行状态
显示容器ID
User
Docker
Container
示例2:附加模式启动
docker start -a -i my_interactive_container
典型输出:
容器启动日志…
应用初始化信息…
[进程持续运行]
示例3:批量操作
docker start web01 web02 db01
状态转换图:
#mermaid-svg-2bA5221xKcLCesaG {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2bA5221xKcLCesaG .error-icon{fill:#552222;}#mermaid-svg-2bA5221xKcLCesaG .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-2bA5221xKcLCesaG .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-2bA5221xKcLCesaG .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-2bA5221xKcLCesaG .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-2bA5221xKcLCesaG .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-2bA5221xKcLCesaG .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-2bA5221xKcLCesaG .marker{fill:#333333;stroke:#333333;}#mermaid-svg-2bA5221xKcLCesaG .marker.cross{stroke:#333333;}#mermaid-svg-2bA5221xKcLCesaG svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-2bA5221xKcLCesaG .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-2bA5221xKcLCesaG .cluster-label text{fill:#333;}#mermaid-svg-2bA5221xKcLCesaG .cluster-label span{color:#333;}#mermaid-svg-2bA5221xKcLCesaG .label text,#mermaid-svg-2bA5221xKcLCesaG span{fill:#333;color:#333;}#mermaid-svg-2bA5221xKcLCesaG .node rect,#mermaid-svg-2bA5221xKcLCesaG .node circle,#mermaid-svg-2bA5221xKcLCesaG .node ellipse,#mermaid-svg-2bA5221xKcLCesaG .node polygon,#mermaid-svg-2bA5221xKcLCesaG .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-2bA5221xKcLCesaG .node .label{text-align:center;}#mermaid-svg-2bA5221xKcLCesaG .node.clickable{cursor:pointer;}#mermaid-svg-2bA5221xKcLCesaG .arrowheadPath{fill:#333333;}#mermaid-svg-2bA5221xKcLCesaG .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-2bA5221xKcLCesaG .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-2bA5221xKcLCesaG .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-2bA5221xKcLCesaG .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-2bA5221xKcLCesaG .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-2bA5221xKcLCesaG .cluster text{fill:#333;}#mermaid-svg-2bA5221xKcLCesaG .cluster span{color:#333;}#mermaid-svg-2bA5221xKcLCesaG div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-2bA5221xKcLCesaG :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
start web01
start web02
start db01
停止
运行
停止
运行
停止
运行
三、docker stop 命令专业指南
3.1 停止流程剖析
#mermaid-svg-SNuJsmVAuJqPWITC {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SNuJsmVAuJqPWITC .error-icon{fill:#552222;}#mermaid-svg-SNuJsmVAuJqPWITC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-SNuJsmVAuJqPWITC .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-SNuJsmVAuJqPWITC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-SNuJsmVAuJqPWITC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-SNuJsmVAuJqPWITC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-SNuJsmVAuJqPWITC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-SNuJsmVAuJqPWITC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-SNuJsmVAuJqPWITC .marker.cross{stroke:#333333;}#mermaid-svg-SNuJsmVAuJqPWITC svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-SNuJsmVAuJqPWITC .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-SNuJsmVAuJqPWITC .cluster-label text{fill:#333;}#mermaid-svg-SNuJsmVAuJqPWITC .cluster-label span{color:#333;}#mermaid-svg-SNuJsmVAuJqPWITC .label text,#mermaid-svg-SNuJsmVAuJqPWITC span{fill:#333;color:#333;}#mermaid-svg-SNuJsmVAuJqPWITC .node rect,#mermaid-svg-SNuJsmVAuJqPWITC .node circle,#mermaid-svg-SNuJsmVAuJqPWITC .node ellipse,#mermaid-svg-SNuJsmVAuJqPWITC .node polygon,#mermaid-svg-SNuJsmVAuJqPWITC .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-SNuJsmVAuJqPWITC .node .label{text-align:center;}#mermaid-svg-SNuJsmVAuJqPWITC .node.clickable{cursor:pointer;}#mermaid-svg-SNuJsmVAuJqPWITC .arrowheadPath{fill:#333333;}#mermaid-svg-SNuJsmVAuJqPWITC .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-SNuJsmVAuJqPWITC .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-SNuJsmVAuJqPWITC .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-SNuJsmVAuJqPWITC .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-SNuJsmVAuJqPWITC .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-SNuJsmVAuJqPWITC .cluster text{fill:#333;}#mermaid-svg-SNuJsmVAuJqPWITC .cluster span{color:#333;}#mermaid-svg-SNuJsmVAuJqPWITC div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-SNuJsmVAuJqPWITC :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
正常停止
超时未停止
收到stop命令
发送SIGTERM
等待-t参数指定时间
进程退出
发送SIGKILL
强制终止
3.2 参数详解表
| -t, –time | 优雅停止超时时间 | 10秒 | 关键服务建议30秒 |
| (无参数) | 使用默认超时 | 10秒 | 常规应用适用 |
3.3 生产环境实践
优雅停止示例
docker stop -t 30 oracle_db
执行过程:
批量停止技巧
docker stop $(docker ps -aq -f "status=running")
说明: 停止所有运行中的容器
四、docker restart 命令终极指南
4.1 重启过程分解
#mermaid-svg-l13H187c4wPMsdVI {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-l13H187c4wPMsdVI .error-icon{fill:#552222;}#mermaid-svg-l13H187c4wPMsdVI .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-l13H187c4wPMsdVI .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-l13H187c4wPMsdVI .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-l13H187c4wPMsdVI .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-l13H187c4wPMsdVI .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-l13H187c4wPMsdVI .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-l13H187c4wPMsdVI .marker{fill:#333333;stroke:#333333;}#mermaid-svg-l13H187c4wPMsdVI .marker.cross{stroke:#333333;}#mermaid-svg-l13H187c4wPMsdVI svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-l13H187c4wPMsdVI .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-l13H187c4wPMsdVI text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-l13H187c4wPMsdVI .actor-line{stroke:grey;}#mermaid-svg-l13H187c4wPMsdVI .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-l13H187c4wPMsdVI .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-l13H187c4wPMsdVI #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-l13H187c4wPMsdVI .sequenceNumber{fill:white;}#mermaid-svg-l13H187c4wPMsdVI #sequencenumber{fill:#333;}#mermaid-svg-l13H187c4wPMsdVI #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-l13H187c4wPMsdVI .messageText{fill:#333;stroke:#333;}#mermaid-svg-l13H187c4wPMsdVI .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-l13H187c4wPMsdVI .labelText,#mermaid-svg-l13H187c4wPMsdVI .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-l13H187c4wPMsdVI .loopText,#mermaid-svg-l13H187c4wPMsdVI .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-l13H187c4wPMsdVI .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-l13H187c4wPMsdVI .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-l13H187c4wPMsdVI .noteText,#mermaid-svg-l13H187c4wPMsdVI .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-l13H187c4wPMsdVI .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-l13H187c4wPMsdVI .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-l13H187c4wPMsdVI .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-l13H187c4wPMsdVI .actorPopupMenu{position:absolute;}#mermaid-svg-l13H187c4wPMsdVI .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-l13H187c4wPMsdVI .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-l13H187c4wPMsdVI .actor-man circle,#mermaid-svg-l13H187c4wPMsdVI line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-l13H187c4wPMsdVI :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
User
Docker
Container
restart my_app
发送stop命令
确认停止
发送start命令
确认启动
返回容器ID
User
Docker
Container
4.2 参数对比表
| -t | 设置停止超时 | 无影响 |
| -a | 无作用 | 附加到输出流 |
| -i | 无作用 | 保持STDIN打开 |
4.3 典型应用场景
配置热更新
# 修改配置后重启
docker restart -t 15 nginx
服务恢复方案
#!/bin/bash
if ! docker inspect -f '{{.State.Running}}' my_service; then
docker restart my_service
fi
五、三命令对比分析
5.1 功能矩阵
| 状态转换 | 停止→运行 | 运行→停止 | 运行→停止→运行 |
| 参数继承 | 支持所有run参数 | 仅-t参数 | 部分参数继承 |
| 批量操作 | 支持 | 支持 | 支持 |
| 返回结果 | 容器ID | 容器ID | 容器ID |
六、企业级最佳实践
6.1 安全停止方案
#!/bin/bash
# 优雅停止脚本
container=$1
timeout=${2:-30}
echo "开始停止容器 $container"
docker stop -t $timeout $container || {
echo "优雅停止失败,尝试强制终止"
docker kill $container
}
6.2 自动恢复架构
#mermaid-svg-aF0xPkGZimLJPuEp {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-aF0xPkGZimLJPuEp .error-icon{fill:#552222;}#mermaid-svg-aF0xPkGZimLJPuEp .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aF0xPkGZimLJPuEp .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-aF0xPkGZimLJPuEp .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aF0xPkGZimLJPuEp .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aF0xPkGZimLJPuEp .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aF0xPkGZimLJPuEp .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aF0xPkGZimLJPuEp .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aF0xPkGZimLJPuEp .marker.cross{stroke:#333333;}#mermaid-svg-aF0xPkGZimLJPuEp svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aF0xPkGZimLJPuEp .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-aF0xPkGZimLJPuEp .cluster-label text{fill:#333;}#mermaid-svg-aF0xPkGZimLJPuEp .cluster-label span{color:#333;}#mermaid-svg-aF0xPkGZimLJPuEp .label text,#mermaid-svg-aF0xPkGZimLJPuEp span{fill:#333;color:#333;}#mermaid-svg-aF0xPkGZimLJPuEp .node rect,#mermaid-svg-aF0xPkGZimLJPuEp .node circle,#mermaid-svg-aF0xPkGZimLJPuEp .node ellipse,#mermaid-svg-aF0xPkGZimLJPuEp .node polygon,#mermaid-svg-aF0xPkGZimLJPuEp .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aF0xPkGZimLJPuEp .node .label{text-align:center;}#mermaid-svg-aF0xPkGZimLJPuEp .node.clickable{cursor:pointer;}#mermaid-svg-aF0xPkGZimLJPuEp .arrowheadPath{fill:#333333;}#mermaid-svg-aF0xPkGZimLJPuEp .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aF0xPkGZimLJPuEp .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aF0xPkGZimLJPuEp .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-aF0xPkGZimLJPuEp .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-aF0xPkGZimLJPuEp .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aF0xPkGZimLJPuEp .cluster text{fill:#333;}#mermaid-svg-aF0xPkGZimLJPuEp .cluster span{color:#333;}#mermaid-svg-aF0xPkGZimLJPuEp div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-aF0xPkGZimLJPuEp :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
检测异常
restart
上报状态
监控服务
控制中心
业务容器
6.3 批量操作模板
# 滚动重启web服务集群
for node in web{01..10}; do
docker restart -t 20 $node
sleep 5 # 错峰重启
done
七、常见问题排查指南
7.1 问题诊断表
| start失败 | 容器已运行 | 检查状态 docker ps -a |
| stop超时 | 进程未处理SIGTERM | 优化应用信号处理逻辑 |
| restart循环 | 启动即崩溃 | 检查日志 docker logs |
| 权限不足 | 非root用户操作 | 配置docker组权限 |
7.2 调试命令集
# 查看容器状态变化历史
docker events –filter 'container=my_container'
# 分析停止耗时
time docker stop my_container
# 检查资源限制
docker inspect –format='{{.HostConfig.Memory}}' my_container
八、进阶技巧
8.1 状态保持策略
#mermaid-svg-smhzlzS2OpL9tLLb {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-smhzlzS2OpL9tLLb .error-icon{fill:#552222;}#mermaid-svg-smhzlzS2OpL9tLLb .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-smhzlzS2OpL9tLLb .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-smhzlzS2OpL9tLLb .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-smhzlzS2OpL9tLLb .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-smhzlzS2OpL9tLLb .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-smhzlzS2OpL9tLLb .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-smhzlzS2OpL9tLLb .marker{fill:#333333;stroke:#333333;}#mermaid-svg-smhzlzS2OpL9tLLb .marker.cross{stroke:#333333;}#mermaid-svg-smhzlzS2OpL9tLLb svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-smhzlzS2OpL9tLLb .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-smhzlzS2OpL9tLLb .cluster-label text{fill:#333;}#mermaid-svg-smhzlzS2OpL9tLLb .cluster-label span{color:#333;}#mermaid-svg-smhzlzS2OpL9tLLb .label text,#mermaid-svg-smhzlzS2OpL9tLLb span{fill:#333;color:#333;}#mermaid-svg-smhzlzS2OpL9tLLb .node rect,#mermaid-svg-smhzlzS2OpL9tLLb .node circle,#mermaid-svg-smhzlzS2OpL9tLLb .node ellipse,#mermaid-svg-smhzlzS2OpL9tLLb .node polygon,#mermaid-svg-smhzlzS2OpL9tLLb .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-smhzlzS2OpL9tLLb .node .label{text-align:center;}#mermaid-svg-smhzlzS2OpL9tLLb .node.clickable{cursor:pointer;}#mermaid-svg-smhzlzS2OpL9tLLb .arrowheadPath{fill:#333333;}#mermaid-svg-smhzlzS2OpL9tLLb .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-smhzlzS2OpL9tLLb .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-smhzlzS2OpL9tLLb .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-smhzlzS2OpL9tLLb .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-smhzlzS2OpL9tLLb .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-smhzlzS2OpL9tLLb .cluster text{fill:#333;}#mermaid-svg-smhzlzS2OpL9tLLb .cluster span{color:#333;}#mermaid-svg-smhzlzS2OpL9tLLb div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-smhzlzS2OpL9tLLb :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
–rm
默认
stop
自动删除
保留配置
start
复用原有配置
8.2 与docker run的关联
生命周期全景图:
#mermaid-svg-VNNUuh7rmzYmsNp4 {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .error-icon{fill:#552222;}#mermaid-svg-VNNUuh7rmzYmsNp4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-VNNUuh7rmzYmsNp4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .marker.cross{stroke:#333333;}#mermaid-svg-VNNUuh7rmzYmsNp4 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-VNNUuh7rmzYmsNp4 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .cluster-label text{fill:#333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .cluster-label span{color:#333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .label text,#mermaid-svg-VNNUuh7rmzYmsNp4 span{fill:#333;color:#333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .node rect,#mermaid-svg-VNNUuh7rmzYmsNp4 .node circle,#mermaid-svg-VNNUuh7rmzYmsNp4 .node ellipse,#mermaid-svg-VNNUuh7rmzYmsNp4 .node polygon,#mermaid-svg-VNNUuh7rmzYmsNp4 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-VNNUuh7rmzYmsNp4 .node .label{text-align:center;}#mermaid-svg-VNNUuh7rmzYmsNp4 .node.clickable{cursor:pointer;}#mermaid-svg-VNNUuh7rmzYmsNp4 .arrowheadPath{fill:#333333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-VNNUuh7rmzYmsNp4 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-VNNUuh7rmzYmsNp4 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-VNNUuh7rmzYmsNp4 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-VNNUuh7rmzYmsNp4 .cluster text{fill:#333;}#mermaid-svg-VNNUuh7rmzYmsNp4 .cluster span{color:#333;}#mermaid-svg-VNNUuh7rmzYmsNp4 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-VNNUuh7rmzYmsNp4 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
run
start
stop
restart
8.3 组合命令技巧
# 重启所有异常容器
docker ps -q -f "status=exited" | xargs docker start
# 优雅停止并清理
docker stop -t 30 my_container && docker rm my_container
九、总结
通过本文您应该掌握:
推荐操作流程:
#mermaid-svg-rXe91hbdZKPunLCe {font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rXe91hbdZKPunLCe .error-icon{fill:#552222;}#mermaid-svg-rXe91hbdZKPunLCe .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-rXe91hbdZKPunLCe .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-rXe91hbdZKPunLCe .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-rXe91hbdZKPunLCe .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-rXe91hbdZKPunLCe .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-rXe91hbdZKPunLCe .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-rXe91hbdZKPunLCe .marker{fill:#333333;stroke:#333333;}#mermaid-svg-rXe91hbdZKPunLCe .marker.cross{stroke:#333333;}#mermaid-svg-rXe91hbdZKPunLCe svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-rXe91hbdZKPunLCe .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-rXe91hbdZKPunLCe .cluster-label text{fill:#333;}#mermaid-svg-rXe91hbdZKPunLCe .cluster-label span{color:#333;}#mermaid-svg-rXe91hbdZKPunLCe .label text,#mermaid-svg-rXe91hbdZKPunLCe span{fill:#333;color:#333;}#mermaid-svg-rXe91hbdZKPunLCe .node rect,#mermaid-svg-rXe91hbdZKPunLCe .node circle,#mermaid-svg-rXe91hbdZKPunLCe .node ellipse,#mermaid-svg-rXe91hbdZKPunLCe .node polygon,#mermaid-svg-rXe91hbdZKPunLCe .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-rXe91hbdZKPunLCe .node .label{text-align:center;}#mermaid-svg-rXe91hbdZKPunLCe .node.clickable{cursor:pointer;}#mermaid-svg-rXe91hbdZKPunLCe .arrowheadPath{fill:#333333;}#mermaid-svg-rXe91hbdZKPunLCe .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-rXe91hbdZKPunLCe .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-rXe91hbdZKPunLCe .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-rXe91hbdZKPunLCe .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-rXe91hbdZKPunLCe .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-rXe91hbdZKPunLCe .cluster text{fill:#333;}#mermaid-svg-rXe91hbdZKPunLCe .cluster span{color:#333;}#mermaid-svg-rXe91hbdZKPunLCe div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-rXe91hbdZKPunLCe :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
异常
创建容器
日常运维
start/stop/restart
状态监控
日志分析
参数调整

|
🌺The End🌺点点关注,收藏不迷路🌺 |




