2016-09-23 97 views
4

我在嘗試清除由Docker創建的映像時遇到了一個奇怪的問題。這是我做過什麼:由於錯誤導致無法刪除映像:「來自守護進程的錯誤響應:引用不存在」

  • 刪除所有容器

    $ docker rm $(docker ps -a -q) 
    bb3927e956bf 
    3e2eeb6287c4 
    
  • 檢查是否有任何容器中運行或創建後:

    $ docker ps -a 
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 
    
  • 刪除所有圖像:第一次嘗試因圖像被引用而失敗

    $ docker rmi $(docker images -q) 
    Error response from daemon: conflict: unable to delete 2f21ea981017 (must be forced) - image is referenced in one or more repositories 
    Error response from daemon: conflict: unable to delete 2f21ea981017 (must be forced) - image is referenced in one or more repositories 
    
  • 刪除使用-f選項所有圖片:

    $ docker rmi -f $(docker images -q) 
    Untagged: dev-php55:latest 
    Untagged: reynierpm/dev-php55:latest 
    Deleted: sha256:2f21ea981017f65adcf0df3764756690adc35d80538bbb6dcada12990f589f37 
    Deleted: sha256:7fbddc1aa50dca9bdf4f8c8033d20eca26ac00432f57333987c0eac3fe55fb08 
    Deleted: sha256:15883aeb774feafa64328ea2e77ebbe17a91e79ca1cd8bb2eebca60802fb01f5 
    Deleted: sha256:36ff96a995807763e302657eaeb671c000e58e3128a47f63bae543ba501387ed 
    Deleted: sha256:053f436f01f809f60ecba9fb961dfb6404dce163f84fbd905eb47a6b436ba50d 
    Deleted: sha256:b4525a37a105a199b7e7772de9e6ad86af645509c94c705bd13fbd422bf8f55d 
    Deleted: sha256:228092e34fffbb9def7f883eceea9f37fce3750d7a7d5a7551ce009410567240 
    Deleted: sha256:a17ed03e91cc4bef074258f731bba0945bcacc78c7ac9f00d88ca111125c94c0 
    Deleted: sha256:6118ff18e2049d3e13a903c4163e4e4aceea9fdd30555bdd71a1e23e8d5aa022 
    Deleted: sha256:b7347848822645efd3259a6c200a94c7bba15fc72b504c704e39f5db0cdca1a2 
    Deleted: sha256:b23b831be841f1f3cececec3e52480723d8312b464d9a89957e867fa695a4eca 
    Deleted: sha256:86c4c6d54d9dee52f8abe0ba8b3622b985bce68923dada61838b45860f000f44 
    Deleted: sha256:f053241f28e7c62ac77b44ee2f69a7bd6d2bb2ccdd9f916e43b8af88f5865f90 
    Deleted: sha256:3f36e15d9aac3c197472d66904fc59bd509ca36c8aa885165aadc6507f27126c 
    Deleted: sha256:6586309b23369f2ccb067ca456ebacd1602787960215d7c2e898c28ae6a2e78d 
    Deleted: sha256:43d7779d3bcd75a466df309735762f33552c2caf8f656ce1e26e1fd6b0324c49 
    Deleted: sha256:9e060bbbad0c042fc45eb52d3e4c41bfd30fb620459f10c62cf7e483d514e1d8 
    Deleted: sha256:9da9f4caedc27c128dc51d273f9d1411d6fce3f560c606fff0567d912d2d95e4 
    Error response from daemon: No such image: 2f21ea981017:latest 
    Error response from daemon: reference does not exist 
    

那麼這個錯誤:No such image: 2f21ea981017:latest來了,我要問,爲什麼?這樣的圖像在哪裏? Docker有什麼內部數據庫來存儲信息?

我跑那麼前面所有的命令後,我運行下面並注意輸出:

$ docker images 
REPOSITORY   TAG     IMAGE ID   CREATED    SIZE 
ubuntu    14.04.5    b1719e1db756  3 days ago   187.9 MB 

但後來我試圖刪除的圖像再次通過運行

$ docker rmi b1719e1db756 
Error response from daemon: reference does not exist 

而且我得到了同樣的錯誤,我在這裏錯過了什麼?我如何解決這個問題?

我應該補充說我也運行了this post的命令,但沒有成功。

+0

僅供參考。由於刪除具有多個標籤的圖像(圖像在一個或多個存儲庫中引用),因此引用錯誤響應,這也是一個公開問題https://github.com/meltwater/docker-cleanup/issues/19 –

回答

1

我會在Github的一些研究和Docker背後的人們的大力幫助下回答我自己。

摘要:

$sudo dnf install docker -y 

從紅帽叉裝碼頭工人,因此版本是::1.10.3,然後使用這個版本我建立了與會者的圖像起初我通過運行以下命令來安裝搬運工直到現在導致問題。構建映像後,我刪除docker 1.10.3版本並切換到docker-engine這是官方安裝1.12.1

問題:我試圖刪除碼頭1.10.3下創建的圖像,但使用碼頭1.12.1,從那裏是問題來自哪裏。

解決方案:刪除docker-engine並安裝臨時docker以刪除在此版本下創建的映像。

  • 刪除搬運工引擎:dnf remove docker-engine
  • 安裝搬運工:dnf install docker
  • 刪除圖片:docker rmi -f $(docker images -q)
  • 刪除泊塢窗:dnf remove docker
  • 安裝搬運工引擎:dnf install docker-engine
  • 構建圖像從零開始

注:出於某種原因後,我遵循所示的每一個步驟上面我遇到了以下問題:

$docker images 
Error response from daemon: client is newer than server (client API version: 1.24, server API version: 1.22) 

做一個dnf autoremove && dnf clean all並重新啓動docker解決問題。

隨意,如果你想看看here

+1

偉大的解決方案!我的是刪除/ var/lib/docker文件夾。 – pbacterio

1

我也遇到這個問題上泊塢窗-CE 17.06/Fedora的26.我不認爲你需要刪除泊塢窗,但這些命令將刪除所有你的圖片。因此,保存您真正需要的圖像,全部刪除並恢復備份;

sudo systemctl stop docker.service 
sudo rm -rf /var/lib/docker 
sudo systemctl start docker.service 
相關問題