2016-12-23 37 views
1

我使用如下搬運工1.12.5:無法刪除泊塢窗圖像,其標籤被<none>

$ 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 

由於標記不是最新的,所以失敗。然後我試圖通過標識刪除它:

$ 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和蒙戈泊塢窗圖像列出。它們直接由docker pull命令創建。他們怎麼會變成一個孩子的形象?

+2

看這裏 - http://stackoverflow.com/questions/36584122/docker-how-can-i-get-the-list-of-dependent-child-images – JosMac

+1

在旁邊注意:我刪除這些圖像喜歡這個:'docker images -q -f dangling = true | xargs docker rmi' - 這將查詢所有懸掛的圖像,然後刪除它們之一。 – nwinkler

回答

0

Docker圖像是在圖層中創建的,每個圖層都顯示爲另一個圖像。您可以對要刪除的映像運行Docker檢查,然後對同一主機上的其他映像運行檢查以查看基於此未命名映像的映像。

請注意,這個圖像可能像Debian本身,其他圖像使用它作爲基礎。還要注意,這個圖像沒有佔用任何不會被子圖像佔用的空間,每個圖層只在驅動器上存在一次。

+0

感謝您的回覆。有沒有直接的方法來找出依賴圖像?主機上有超過50張圖像。逐一檢查需要很多時間。 –

+0

我知道有工具可以生成主機上所有圖像的樹。我從來沒有走過這條道路,因爲它沒有任何價值。與其試圖清理在某處使用的匿名圖像ID,不如直接清理不再需要的帶有標記的圖像,並且剩餘的任何未使用的圖層都將自動刪除。 – BMitch

相關問題