2015-11-25 4 views
56

Я хочу удалить контейнер в Докер, но ошибка возникает, когда вы хотите удалитьDocker ошибка не может удалить Docker контейнера, конфликт: не удалось удалить ссылки хранилища

Моего следующего шага перед удалением контейнера, смотрите список существующего контейнера

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

один я хочу, чтобы удалить список, а именно «обучение/веб-приложение» , но ошибка, возникавшая

[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 rm backstabbing_ritchie 

Результат

$ sudo docker rm backstabbing_ritchie 
    backstabbing_ritchie 

удалить вторую часть, указана в списке г для удаления

$ 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 \ '' для очистки, а не удалять их по одному. Дополнительная информация [здесь] (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

Вы можете остановить контейнеры с использованием sudo docker stop training/webapp перед удалением

+1

Я пробовал, остановив контейнер $ sudo docker stop training/webapp Ошибка ответа от демона: нет такого идентификатора: training/webapp Ошибка: не удалось остановить контейнеры : [training/webapp] – Yuday

+0

вы можете попробовать остановиться с идентификатором контейнера 'sudo docker stop 0bd2b54678c7' –

+0

2017, все еще есть проблема. – harryfeng

18

Если кратные Докер контейнеры запущен, использовать это

$ docker rm $(docker ps -aq)

Это удалит все текущие докеры, перечисленные в команде "PS -aq".

Источник: aaam на https://github.com/docker/docker/issues/12487

25

Существует разница между докеров изображений и докеров контейнеров. Проверьте это 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

Я обновил ответ, чтобы включить этот бит информации. –

Смежные вопросы