假设,您运行一个多容器Docker应用程序,该应用程序由一个数据库容器和一个应用程序容器组成。以下两种关闭它的方法有什么区别?
第一种方法
1.打开终端,然后使用docker-compose up
启动应用程序。
2.使用Ctrl + C
关闭应用程序。
第二种方法
1.打开终端,然后使用docker-compose up
启动应用程序。
2.打开第二个终端,然后使用docker-compose down
关闭应用程序。
以我的理解,这两种方法应该完全相同。但是,当使用第二种方法时,我通常会在应用程序的日志中看到一些异常,即它已经关闭时无法连接到数据库,否则我看不到。
推荐的方法是什么?
答案 0 :(得分:3)
运行Ctrl + C只会停止容器(实际上等效于docker-compose stop
),而docker-compose down
还将删除停止的容器并删除由撰写文件创建的所有网络。
Ctrl + C仅在所有服务未以分离状态启动时才起作用(docker-compose up
未设置-d
标志)
对于推荐的方法,它实际上取决于您的特定用例。如果您只需要停止服务而不需要删除容器,则docker-compose stop
就足够了。如果您想重建图像或使用其他图像,则可能需要运行docker-compose down
。