2015-11-25 2 views
56

Ich möchte den Behälter an Docker entfernen, aber ein Fehler tritt auf, wenn SieDocker Fehler nicht Docker Behälter, Konflikt löschen: unable Repository Verweis entfernen

Mein nächster Schritt vor dem Entfernen des Behälters finden Sie in der Liste löschen möchten bestehenden Behälter

[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) 

man mag ich die Liste löschen, nämlich "Ausbildung/Webapp" aber einen Fehler, die

[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] 
aufgetreten

Ob der Container in den Bildern läuft?

Bitte helfen

+0

dies manchmal geschieht mir das Muster, aber ich bin nicht in der Lage, herauszufinden, was bewirkt, dass es passieren (da es nicht immer mir passiert), und wenn ich das Bild zwingen, entfernen sie eine entfernt Ein Haufen anderer Sachen auch.Weißt du, was den Fehler für dich verursacht hat? Kannst du es reproduzieren? –

+0

Ausgezeichnete aktuelle Zusammenfassung [So entfernen Sie Docker Bilder, Container und Volumes] (https://www.digitalcocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes) von Melissa Anderson Dez 2017, mit Filter Beispiele, Muster, etc. –

Antwort

41

Zuerst löschen, entfernen Sie die Containernamen

$ sudo docker rm backstabbing_ritchie 

Das Ergebnis

$ sudo docker rm backstabbing_ritchie 
    backstabbing_ritchie 

den zweiten Teil löschen, die ist auf dem contain aufgeführt r

$ sudo docker rm drunk_feynman 
    drunk_feynman 

Zweitens, entfernen Sie den Behälter

$ sudo docker rmi training/webapp 

Das Ergebnis

$ 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 

die 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

Wenn Sie viele alte Container haben, können Sie auch docker 'rm \' docker ps -aq \ '' zum Säubern betrachten, anstatt sie einzeln zu entfernen. Mehr Informationen [hier] (http://stackoverflow.com/questions/17236796/how-to-remove-old-docker-containers?page=1&tab=active#tab-top) – Philiiiiiipp

16

Sie -f Option verwenden können, um die Behälter zu zwingen, zu löschen.

sudo docker rmi -f training/webapp

können Sie die Behälter stoppen sudo docker stop training/webapp verwenden, bevor

+1

Ich habe es versucht, indem Container gestoppt $ sudo docker stop training/webapp Fehler Antwort von Daemon: keine solche ID: Training/Webapp Fehler: Container konnte nicht gestoppt werden : [training/webapp] – Yuday

+0

Sie können versuchen, mit der Container-ID stoppen 'sudo docker stop 0bd2b54678c7' –

+0

2017, immer noch das Problem haben. – harryfeng

18

Überprüfen gelöscht Wenn Sie Multiples Docker-Container ins Leben gerufen haben, benutze das

$ docker rm $(docker ps -aq)

Es werden alle aktuellen Docker in der "ps -aq" aufgelistet entfernen Befehl.

Quelle: aaam auf https://github.com/docker/docker/issues/12487

25

Es gibt einen Unterschied zwischen Docker Bildern und Docker-Container. Überprüfen Sie diese SO Question.

Kurz gesagt, ein Container ist eine laufende Instanz eines Bildes. Aus diesem Grund können Sie ein Bild nicht löschen, wenn ein laufender Container aus diesem Bild besteht. Sie müssen nur den Container zuerst löschen.

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

Ich musste am Ende 'docker rmi verwenden "ID", um die Entfernung "zu erzwingen". – WernerCD

+0

@WernerCD '-f' hilft, wenn Sie ein Bild entfernen möchten, auf das in mehreren Repositories verwiesen wird. Dies ist ein weiterer häufiger Grund, ein Bild nicht zu entfernen. –

+0

Ich habe die Antwort aktualisiert, um auch dieses bisschen Info zu enthalten. –