2015-11-25 53 views
56

我想刪除在泊塢容器,但當你想取出容器之前刪除泊塢窗誤差不能刪除泊塢窗容器,衝突:無法刪除存儲庫參考

我的下一步,查看列表中發生錯誤現有容器的

[email protected]:~/docker$ sudo docker ps -as 

CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS     PORTS    NAMES     SIZE 
78479ffeba5c  ubuntu    "/bin/bash"   42 hours ago  Exited (0) 42 hours ago      sharp_wescoff   81 B (virtual 187.7 MB) 
0bd2b54678c7  training/webapp  "python app.py"  5 days ago   Exited (0) 5 days ago       backstabbing_ritchie 0 B (virtual 323.7 MB) 
0adbc74a3803  training/webapp  "python app.py"  5 days ago   Exited (143) 5 days ago      drunk_feynman   0 B (virtual 323.7 MB) 

一個我想刪除列表,即「培訓/ webapp的」 但發生

[email protected]:~/docker$ sudo docker rmi training/webapp 
Error response from daemon: conflict: unable to remove repository reference "training/webapp" (must force) - container 0bd2b54678c7 is using its referenced image 54bb4e8718e8 
Error: failed to remove images: [training/webapp] 
錯誤

容器是否在圖像中運行?

請幫

+0

發生這種情況,我有時但我無法弄清楚是什麼原因導致這樣的情況發生(因爲它並不總是發生在我身上)的模式,再加上如果我強行刪除圖像它刪除一個一堆其他的東西。你知道是什麼原因導致了你的錯誤嗎?你能重現嗎? –

回答

41

首先之前停止使用sudo docker stop training/webapp容器,取出容器名稱

$ sudo docker rm backstabbing_ritchie 

結果

$ sudo docker rm backstabbing_ritchie 
    backstabbing_ritchie 

刪除第二個部分,其中在集裝箱上列出R鍵刪除

$ sudo docker rm drunk_feynman 
    drunk_feynman 

其次,取出容器

$ sudo docker rmi training/webapp 

結果

$ sudo docker rmi training/webapp 
    Untagged: training/webapp:latest 
    Deleted: 54bb4e8718e8600d78a5d7c62208c2f13c8caf0e4fe73d2bc0e474e93659c0b5 
    Deleted: f74dd040041eb4c032d3025fe38ea85de8075992bdce6789b694a44b20feb8de 
    Deleted: 7cbae69141977b99c44dc6957b032ad50c1379124d62b7d7d05ab7329b42348e 
    Deleted: abb991a4ed5e4cde2d9964aec4cccbe0015ba9cc9838b696e7a32e1ddf4a49bd 
    Deleted: 1952e3bf3d7e8e6a9b1e23bd4142e3c42ff7f4b7925122189704323593fd54ac 
    Deleted: f95ebd363bf27a7546deced7a41a4099334e37a3d2901fa3817e62bb1ade183f 
    Deleted: 20dd0c75901396d41a7b64d551ff04952084cc3947e66c67bae35759c80da338 
    Deleted: 2505b734adda3720799dde5004302f5edb3f2a2ff71438f6488b530b728ba666 
    Deleted: 2ee0b8f351f753f78f1178000ae37616eb5bf241d4ef041b612d58e1fd2aefdc 
    Deleted: 2ce633e3e9c9bd9e8fe7ade5984d7656ec3fc3994f05a97d5490190ef95bce8d 
    Deleted: 98b15185dba7f85308eb0e21196956bba653cf142b36dc08059b3468a01bf35d 
    Deleted: 515565c29c940355ec886c992231c6019a6cffa17ff1d2abdfc844867c9080c5 
    Deleted: 2880a3395eded9b748c94d27767e1e202f8d7cb06f1e40e18d1b1c77687aef77 

檢查continer

$ sudo docker ps -as 
    CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS     PORTS    NAMES     SIZE 
    78479ffeba5c  ubuntu    "/bin/bash"   43 hours ago  Exited (0) 43 hours ago      sharp_wescoff   81 B (virtual 187.7 MB) 
+6

如果你碰巧有很多舊的容器,你也可以考慮使用docker'rm \'docker ps -aq \''來進行清理,而不是一次刪除一個。更多信息[here](http://stackoverflow.com/questions/17236796/how-to-remove-old-docker-containers?page=1&tab=active#tab-top) – Philiiiiiipp

16

可以使用-f選項強制刪除容器。

sudo docker rmi -f training/webapp

您可以刪除

+1

我試過了,通過阻止容器 $ sudo docker停止培訓/ webapp 來自守護進程的錯誤響應:沒有這樣的id:training/webapp 錯誤:未能停止容器:[培訓/ webapp] – Yuday

+0

你可以嘗試停止使用容器ID'sudo docker stop 0bd2b54678c7' –

+0

2017,仍然有問題。 – harryfeng

25

有碼頭工人圖像和Docker容器之間的差。檢查這SO Question

簡而言之,容器是一個圖像的運行實例。這就是爲什麼如果圖像中存在正在運行的容器,則無法刪除圖像。 您只需要先刪除容器。

Docker ps -a    # Lists containers (and tells you which images they are spun from) 
Docker images    # Lists images 
Docker rm <container_id> # Removes a container 

Docker rmi <image_id>  # Removes an image 
          # Will fail if there is a running instance of that image i.e. container 

Docker rmi -f <image_id> # Forces removal of image even if it is referenced in multiple repositories, 
          # i.e. same image id given multiple names/tags 
          # Will still fail if there is a docker container referencing image 
+0

我最終不得不使用'docker rmi -f id'來「強制」移除。 – WernerCD

+0

@WernerCD'-f'可以幫助您刪除在多個存儲庫中引用的圖像,這是無法刪除圖像的另一個常見原因。 –

+0

我已經更新了包含這一信息的答案。 –