Docker Compose`down`和`stop`命令的区别_docker compose down
在使用 Docker Compose 管理容器时,down
和stop
是两个常用命令,但它们的功能和用途有所不同。本文将详细介绍这两个命令的区别,并通过代码示例和 Mermaid 图表进行解释。
1.docker-compose stop
命令
功能docker-compose stop
命令用于停止由docker-compose up
创建的容器,但不会删除这些容器、网络、卷或镜像。它只是简单地停止容器的运行。
常用选项
• -t, --timeout TIMEOUT
:指定停止容器的超时时间(默认为 10 秒)。
示例代码
假设你有一个docker-compose.yml
文件,定义了两个服务:web
和db
。
version: \'3\'services: web: image: nginx db: image: postgres
运行以下命令启动服务:
docker-compose up -d
停止所有服务:
docker-compose stop
如果只想停止特定服务(如db
),可以使用:
docker-compose stop db
Mermaid 图表
#mermaid-svg-8lna5BmXfdUaZTcq {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8lna5BmXfdUaZTcq .error-icon{fill:#552222;}#mermaid-svg-8lna5BmXfdUaZTcq .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-8lna5BmXfdUaZTcq .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-8lna5BmXfdUaZTcq .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-8lna5BmXfdUaZTcq .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-8lna5BmXfdUaZTcq .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-8lna5BmXfdUaZTcq .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-8lna5BmXfdUaZTcq .marker{fill:#333333;stroke:#333333;}#mermaid-svg-8lna5BmXfdUaZTcq .marker.cross{stroke:#333333;}#mermaid-svg-8lna5BmXfdUaZTcq svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-8lna5BmXfdUaZTcq .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-8lna5BmXfdUaZTcq .cluster-label text{fill:#333;}#mermaid-svg-8lna5BmXfdUaZTcq .cluster-label span{color:#333;}#mermaid-svg-8lna5BmXfdUaZTcq .label text,#mermaid-svg-8lna5BmXfdUaZTcq span{fill:#333;color:#333;}#mermaid-svg-8lna5BmXfdUaZTcq .node rect,#mermaid-svg-8lna5BmXfdUaZTcq .node circle,#mermaid-svg-8lna5BmXfdUaZTcq .node ellipse,#mermaid-svg-8lna5BmXfdUaZTcq .node polygon,#mermaid-svg-8lna5BmXfdUaZTcq .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-8lna5BmXfdUaZTcq .node .label{text-align:center;}#mermaid-svg-8lna5BmXfdUaZTcq .node.clickable{cursor:pointer;}#mermaid-svg-8lna5BmXfdUaZTcq .arrowheadPath{fill:#333333;}#mermaid-svg-8lna5BmXfdUaZTcq .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-8lna5BmXfdUaZTcq .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-8lna5BmXfdUaZTcq .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-8lna5BmXfdUaZTcq .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-8lna5BmXfdUaZTcq .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-8lna5BmXfdUaZTcq .cluster text{fill:#333;}#mermaid-svg-8lna5BmXfdUaZTcq .cluster span{color:#333;}#mermaid-svg-8lna5BmXfdUaZTcq 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-8lna5BmXfdUaZTcq :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;}启动服务运行中的容器停止服务容器停止但保留重新启动服务
2.docker-compose down
命令
功能docker-compose down
命令用于停止并清理由docker-compose up
创建的容器、网络、卷和镜像。它会完全移除所有相关资源,使系统恢复到运行docker-compose up
之前的状态。
常用选项
• -v, --volumes
:删除所有由docker-compose up
创建的卷。
• --rmi type
:删除镜像。type
可以是all
(删除所有镜像)或local
(仅删除没有自定义标签的镜像)。
• --remove-orphans
:删除未在docker-compose.yml
文件中定义的服务的容器。
• -t, --timeout TIMEOUT
:指定关闭容器的超时时间(默认为 10 秒)。
示例代码
使用相同的docker-compose.yml
文件,启动服务:
docker-compose up -d
清理所有资源:
docker-compose down
如果想删除卷,可以使用:
docker-compose down -v
如果想删除所有镜像,可以使用:
docker-compose down --rmi all
Mermaid 图表
graph TD A[启动服务] --> B[运行中的容器] B --> C[停止服务] C --> D[容器停止但保留] D --> E[清理资源] E --> F[容器、网络、卷和镜像被删除] F --> G[系统恢复到初始状态]
3.区别总结
特性 docker-compose stop
docker-compose down
停止容器 是 是
删除容器 否 是
删除网络 否 是
删除卷 否 可选(使用 -v
或 --volumes
)
删除镜像 否 可选(使用 --rmi
)
清理孤儿容器 否 可选(使用 --remove-orphans
)
4.使用场景
使用docker-compose stop
• 当你只需要暂时停止服务,后续可能会重新启动时。
• 当你不想删除任何资源,只是暂停服务时。
使用docker-compose down
• 当你完成测试或开发,需要完全清理所有资源时。
• 当你想要重新部署服务,需要从干净状态开始时。
5.示例代码
docker-compose.yml
文件
version: \'3\'services: web: image: nginx db: image: postgres
停止服务
docker-compose stop
清理所有资源
docker-compose down -v --rmi all --remove-orphans
6.Mermaid 图表总结
graph TD A[启动服务] --> B[运行中的容器] B --> C[停止服务] C --> D[容器停止但保留] D --> E[重新启动服务] D --> F[清理资源] F --> G[容器、网络、卷和镜像被删除] G --> H[系统恢复到初始状态]
通过以上内容,你可以清楚地了解docker-compose stop
和docker-compose down
的区别,并根据实际需求选择合适的命令。
————————
https://github.com/0voice