为什么我不能停泊码头图片?

时间:2015-08-04 08:07:26

标签: docker

  • 我从图像A

  • 运行容器A.
  • 然后,我确实更改了容器A中的内容并将此容器提交到映像B

  • 我从图像B和rm -f容器A

  • 运行容器B.
  • 我想要rmi图像A但它不起作用.Docker说容器B正在使用它。

所以我的问题是,我从图像B运行容器B但是为什么停靠者说当我想要rmi图像A时容器B正在使用图像A.

我的码头版:

Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d
OS/Arch (client): linux/amd64
Server version: 1.7.1
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 786b29d
OS/Arch (server): linux/amd64

2 个答案:

答案 0 :(得分:0)

您的图片B基于图片A 。它在图像A中使用inherits all the image layers。它会添加您通过提交新图像B创建的新图像图层。

因此,当您使用图像B时,图像A始终作为依赖关系保留在图像层修订树中。只要您使用图像B运行容器,就无法删除图像A.

答案 1 :(得分:0)

这正是预期的行为。您已经在Layer(Image)A。

的基础上有效地创建了一个Layer(Image)B

其中图层B是图层A上操作的增量。这基于Union File System,并在docker的上下文中进行了描述:Understanding Docker

我想说你现在正在运行容器B,这取决于ImageA(提供错误)。然而根本问题是图像B依赖于ImageA。