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

geo*_*-un 7 docker docker-compose

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

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

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

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

推荐的方法是什么?

小智 9

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

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

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