深度分析Docker Compose命令基础之停止服务容器的stop命令
作为一名在现代软件工程“江湖”中闯荡的开发者,你一定对Docker和Docker Compose这两位“绝代双骄”不陌生。我们习惯了用docker-compose up -d这一声令下,让一个个服务容器如训练有素的士兵般迅速集结、立正上岗(Up and Running)。这感觉,就像是一位运筹帷幄的将军,好不威风!
但当夜幕降临(或者只是你想调试、更新配置时),如何让这支“队伍”暂时休整呢?你可能会下意识地想到docker-compose down。且慢!将军!这相当于不是让士兵们回营休息,而是直接“解散队伍,拆掉营房”(删除容器和网络)!下次“集合”又得从头再来,费时费力。
此时,你就需要一位深谙“管理艺术”的副官——docker-compose stop命令。它不搞“一刀切”,而是倡导“优雅下班”(Graceful Shutdown),给足容器们处理后续工作的时间,保证明天(或下一秒)还能精神饱满地“原地复活”。
一、 “优雅下班” vs. “暴力强拆”:Stop的灵魂所在
要理解stop命令的精髓,我们首先要把它和它的两个“表亲”——down和pause——放在一起比较。
docker-compose stop:优雅下班(Graceful Stop)
-
- 行为:它向容器内PID为1的主进程发送一个SIGTERM信号。这是一个礼貌的告知:“您该下班了,请保存好工作,关闭文件,然后自行离开。”
- 过程:进程收到SIGTERM后,会执行预定义好的清理逻辑(cleanup),比如将内存中的数据持久化到磁盘、关闭网络连接等。如果在规定时间(默认10秒)内自己搞定,则安然退出;如果超时了,Compose会失去耐心,发送SIGKILL信号强行终止它。
- 结果:容器被停止(Stopped),但并未被删除。它的文件系统层、网络连接(仅断开)、以及所有配置都原封不动地保留着。就像电脑进入了休眠模式,随时可以快速唤醒。
docker-compose down:暴力强拆(Teardown)
-
- 行为:它默认会先执行
stop(发送SIGTERM),但之后还会删除已停止的容器,并移除由up创建的网络。 - 结果:容器和自定义网络被彻底删除。下次启动需要完全从头开始构建和运行,就像项目竣工后直接把楼拆了,下次得重新打地基。
- 行为:它默认会先执行
docker-com
Docker Compose Stop命令详解

最低0.47元/天 解锁文章
1515

被折叠的 条评论
为什么被折叠?



