docker-compose down和Ctrl + C之间的区别

时间:2019-03-21 14:20:07

标签: docker docker-compose

假设,您运行一个多容器Docker应用程序,该应用程序由一个数据库容器和一个应用程序容器组成。以下两种关闭它的方法有什么区别?

第一种方法
1.打开终端,然后使用docker-compose up启动应用程序。
2.使用Ctrl + C关闭应用程序。

第二种方法
1.打开终端,然后使用docker-compose up启动应用程序。
2.打开第二个终端,然后使用docker-compose down关闭应用程序。

以我的理解,这两种方法应该完全相同。但是,当使用第二种方法时,我通常会在应用程序的日志中看到一些异常,即它已经关闭时无法连接到数据库,否则我看不到。

推荐的方法是什么?

1 个答案:

答案 0 :(得分:3)

运行Ctrl + C只会停止容器(实际上等效于docker-compose stop),而docker-compose down还将删除停止的容器并删除由撰写文件创建的所有网络。

Ctrl + C仅在所有服务未以分离状态启动时才起作用(docker-compose up未设置-d标志)

对于推荐的方法,它实际上取决于您的特定用例。如果您只需要停止服务而不需要删除容器,则docker-compose stop就足够了。如果您想重建图像或使用其他图像,则可能需要运行docker-compose down