我正在使用docker 1.12.5,如下所示:
$ docker --version
Docker version 1.12.5, build 7392c3b
我有以下图片:
$ docker images|grep 5000
hoth.southbanksoftware.com:5000/dbenvy-controller <none> d1e229866063 4 days ago 919.4 MB
我使用下面的命令删除此图像但失败了:
$ docker rmi -f hoth.southbanksoftware.com:5000/dbenvy-controller
Error response from daemon: No such image: hoth.southbanksoftware.com:5000/dbenvy-controller:latest
由于标签不是最新的,因此失败了。然后我尝试通过id删除它:
$ docker rmi -f d1e229866063
Error response from daemon: conflict: unable to delete d1e229866063 (cannot be forced) - image has dependent child images
它表明存在依赖的子图像。那么如何删除此图像及其子图像?
EDIT1
在关注此链接docker how can I get the list of dependent child images?之后,我确实删除了一些图片,但下面的图片仍然没有删除。
$ docker images |grep 5000
hoth.southbanksoftware.com:5000/dbenvy-controller <none> 4074bfc5705b 3 weeks ago 667.8 MB
hoth.southbanksoftware.com:5000/ubuntu_jdk8 <none> 4074bfc5705b 3 weeks ago 667.8 MB
以下是此图片ID 4074bfc5705b的儿童图片:
$ docker images --filter since=4074bfc5705b
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> 315ce2f11b01 4 days ago 667.8 MB
mysql latest 594dc21de8de 9 days ago 400.2 MB
mongo latest 86e302671af4 3 weeks ago 401.9 MB
我不明白为什么会在那里列出mysql和mongo docker图像。它们是由docker pull
命令直接创建的。他们怎么会成为孩子的形象?
答案 0 :(得分:0)
Docker图像是以图层形式创建的,每个图层都显示为另一个图像。您可以对要删除的图像运行docker inspect,然后对同一主机上的其他图像运行检查,以查看哪些图像基于此未命名的图像。
请注意,此图像可能类似于Debian本身,而其他图像则使用它作为基础。另请注意,此图像不占用儿童图像无法占用的任何空间,每个图层仅在驱动器上存在一次。