docker-compose down --rmi 所有这些都与容器共享映像



我有一个 docker compose 文件,它使用存储在其中的 Dockerfile 构建一些服务,组合看起来像这样

version: '3.5'
services:
my_app:
build: ""
image: my_image
....
...
my_two:
image: my_image
...
my_three:
image: my_mage
...

现在,当我运行docker-compose up时,发生的事情是构建了映像(build: ""找到Dockerfile并构建它并将其命名为"my_image"(,然后其他两个(my_twomy_three(正在使用已经构建的映像。

目前为止,一切都好。

问题是,当我运行docker-compose down --rmi all时,它成功地删除了my_image,但随后重试两次以再次删除图像,因为它们与其他服务相关联。

该操作执行了它需要做的事情,停止并删除所有容器并删除图像,但问题是它显示错误消息 - 我想避免这种情况,因为我正在围绕它包装一些软件。

如何使docker-compose仅删除一次图像?

使用build而不是image定义所有三个服务可能更容易。

当你运行docker-compose up时,它将首先构建第一个服务,即这个位是不变的。变化是它随后构建了第二个和第三个服务 - 但它将能够重用初始构建中的缓存层,因此您实际上最终会得到一个带有三个不同标签的图像

然后,当您来删除图像时,docker-compose down --rmi local可以依次安全地删除每个"图像":第一次实际上只是取消标记,第二次也是如此,然后第三次将真正删除图像。

最新更新