Docker error response from daemon conflict unable to remove repository reference

I want to remove the container at Docker, but an error occurs when you want to delete My next step before removing the container, see the list of existing container sts@Yudi:~/docker$ sudo docker...

I want to remove the container at Docker, but an error occurs when you want to delete

My next step before removing the container, see the list of existing container

sts@Yudi:~/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)

one I want to delete the list, namely «training / webapp»
but an error that occurred

sts@Yudi:~/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]

Whether the container is running in the images?

Please help

Mark Chorley's user avatar

Mark Chorley

2,0872 gold badges22 silver badges29 bronze badges

asked Nov 25, 2015 at 3:06

Yuday's user avatar

0

There is a difference between docker images and docker containers. Check this SO Question.

In short, a container is a runnable instance of an image. which is why you cannot delete an image if there is a running container from that image. You just need to delete the container first.

docker ps -a                # Lists containers (and tells you which images they are spun from)

docker images               # Lists images 

docker rm <container_id>    # Removes a stopped container

docker rm -f <container_id> # Forces the removal of a running container (uses SIGKILL)

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

Update for Docker 1.13+ [Since Jan 2017]

In Docker 1.13, we regrouped every command to sit under the logical object it’s interacting with

Basically, above commands could also be rewritten, more clearly, as:

docker container ls -a
docker image ls
docker container rm <container_id>
docker image rm <image_id>

Also, if you want to remove EVERYTHING you could use:

docker system prune -a

WARNING! This will remove:

  • all stopped containers
  • all networks not used by at least one container
  • all unused images
  • all build cache

answered Oct 27, 2016 at 11:43

Ahmad Abdelghany's user avatar

Ahmad AbdelghanyAhmad Abdelghany

11.2k5 gold badges40 silver badges35 bronze badges

9

First, remove the container names

$ sudo docker rm backstabbing_ritchie

The result

$ sudo docker rm backstabbing_ritchie
  backstabbing_ritchie

delete the second part, which is listed on the container to be deleted

$ sudo docker rm drunk_feynman 
  drunk_feynman

Second, remove the container

$ sudo docker rmi training/webapp

The result

$ 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

Check the 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)

answered Nov 25, 2015 at 3:21

Yuday's user avatar

YudayYuday

3,9914 gold badges16 silver badges23 bronze badges

3

If you want to cleanup docker images and containers

CAUTION: this will flush everything

stop all containers

docker stop $(docker ps -a -q)

remove all containers

docker rm $(docker ps -a -q)

remove all images

docker rmi -f $(docker images -a -q)

answered May 4, 2018 at 11:06

quAnton's user avatar

quAntonquAnton

7566 silver badges10 bronze badges

1

you can use -f option to force delete the containers .

sudo docker rmi -f training/webapp

You may stop the containers using sudo docker stop training/webapp before deleting

answered Nov 25, 2015 at 3:19

Saril Sudhakaran's user avatar

2

If you have multiples docker containers launched, use this

$ docker rm $(docker ps -aq)

It will remove all the current dockers listed in the «ps -aq» command.

Source : aaam on https://github.com/docker/docker/issues/12487

answered Jun 21, 2016 at 15:20

gael's user avatar

gaelgael

7636 silver badges16 bronze badges

1

1-Stop running container:

docker stop <container-id>

2-Remove container

docker rm <container-id>

3-Remove docker image

docker rmi <image-id>

answered Jun 22, 2021 at 20:52

Ahmet Arslan's user avatar

Ahmet ArslanAhmet Arslan

4,9921 gold badge31 silver badges34 bronze badges

1

list all your docker images:

docker images

list all existed docker containers:

docker ps -a

delete all the targeted containers, which is using the image that you want to delete:

docker rm <container-id>

delete the targeted image:

docker rmi <image-name:image-tag or image-id>

answered Jun 11, 2020 at 11:14

Mohamad Al Mdfaa's user avatar

Noticed this is a 2-years old question, but still want to share my workaround for this particular question:

Firstly, run docker container ls -a to list all the containers you have and pinpoint the want you want to delete.

Secondly, delete the one with command docker container rm <CONTAINER ID> (If the container is currently running, you should stop it first, run docker container stop <CONTAINER ID> to gracefully stop the specified container, if it does not stop it for whatever the reason is, alternatively you can run docker container kill <CONTAINER ID> to force shutdown of the specified container).

Thirdly, remove the container by running docker container rm <CONTAINER ID>.

Lastly you can run docker image ls -a to view all the images and delete the one you want to by running docker image rm <hash>.

answered Mar 27, 2018 at 22:49

User3301's user avatar

User3301User3301

953 silver badges8 bronze badges

Deleting «network not found» in docker

Inspect the network which we are unable to delete

docker network inspect [<id> or <name>]

Disconnect the network

docker network disconnect -f [<networkID> or <networkName>] [<endpointName> or <endpointId>]

Delete unused networks

docker network prune

answered Mar 10, 2021 at 14:10

Jinna Balu's user avatar

Jinna BaluJinna Balu

6,07936 silver badges45 bronze badges

Remove docker images >

List all containers

docker container ls

List all images

docker image ls

Stop container by container id

docker container stop <container_id>

Remove container by container id

docker container rm <container_id>

If don’t want stop and remove, can force remove

docker container rm -f <container_id>

Remove image

docker image rm <image_id>

Done!

keikai's user avatar

keikai

13.2k8 gold badges47 silver badges67 bronze badges

answered Dec 9, 2019 at 21:27

Anthony Piñero's user avatar

Remove just the containers associated with a specific image

docker ps -a | grep training/webapp | cut -d ' ' -f 1 | xargs docker rm
  • ps -a: list all containers
  • grep training/webapp : filter out everything but the containers started from the training/webapp image
  • cut -d ‘ ‘ -f 1: list only the container ids (first field when delimited by space)
  • xargs docker rm : send the container id list output to the docker rm command to remove the container

answered Feb 5, 2020 at 6:35

AndrewD's user avatar

AndrewDAndrewD

4,7013 gold badges29 silver badges31 bronze badges

Simply these two commands solve my issue.

Stop the particular container.

docker stop <container_id>

Forces removal of the image even if it is referenced in multiple repositories.

docker rmi -f <container_id>

answered Jan 16 at 17:23

Mostafizur Rahman's user avatar

@soh0ro0t

I have a bunch of test images on my host i use.
**docker rmi docker images |grep "hello-world" | awk '{print $1}'** to delete one image.on excution, i got error.
Error response from docker daemon :Error response from daemon: conflict: unable to remove repository reference «hello-world» (must force) — container 3061de2e8c9c is using its referenced image 690ed74de00f
docker ps | grep 3061de2e8c9c
on which i got nothing.
docker attach 3061de2e8c9c
on which i got error: You cannot attach to a stopped container, start it first.
So there is no active containers, then why i could not delete the image?

@HackToday

because you have stopped container, please use
docker ps -a to see all containers

maybe https://docs.docker.com/ is good place for you learn

maksnester, tarikki, maciej-plutoflume, ToastyMallows, geocarvalho, blu3r4d0n, shangxuguang, thienphanexcalibur, TomasLukac, jquintana53, and EliotCao reacted with thumbs up emoji

@thaJeztah

closing, because (as @HackToday explained), this is not a bug

@bspp

you can remove it force
such as
docker rmi -f 2234oi23u4io2

duongkstn, Shobhit05, LowApe, felipm13, mnvx, mulfyx, Adel-Bulgakova, mnolascor, imrankhan17, thedarkcoderrises, and 6 more reacted with thumbs up emoji
smile-magic, mulfyx, ronnyDevelop, thedarkcoderrises, xditx32, and DeNIKE666 reacted with heart emoji

@thaJeztah

Using --force to remove an image that’s in use by a container is not really recommended. Remove the container if it’s no longer needed.

@ljavierrivera

@thaJeztah — I’m getting similar myself (found this thread via google search).

Please see steps to diagnose after attempting docker rmi IMAGENAME and receiving message:

~$ docker rmi e5d9538a77db
Error response from daemon: conflict: unable to delete e5d9538a77db (must be forced) — image is referenced in multiple repositories
~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
~$ docker ps -a -q
~$

As you can see no running containers yet the images can’t be deleted. I’m on a Mac running Docker Toolbox

@thaJeztah

@ljavierrivera different error message;

image is referenced in multiple repositories

Which means you’re trying to remove an image by its ID, however the image is tagged under multiple names. Docker then refuses to remove the image, because it would remove multiple image in a single remove. You can still remove the individual images by name. If you don’t have containers running, you can --force delete the image in that case.

However, using the docker image prune functionality that was added recently may be a better option.

@jiangbingo

get it. docker rmi -f ${docker id}

@djangofan

Yes, the command docker image prune worked for me followed by docker rmi ...

@nitish-nyllabs

I receive this error Error response from daemon: conflict: unable to delete b472d6a9286d (cannot be forced) - image is being used by running container 8c2009966994 .

If I stop all the containers built on this image and then they spin up again very fast due to my docker-compose.yml.

version: "3" services: web: # replace username/repo:tag with your name and image details image: ndabas333/hola:newtest deploy: replicas: 5 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "80:80" networks: - webnet networks: webnet:
This image doesn’t exist on my registry now so help me to delete it along with the containers.

@MahmoodKamali

Use the below command to remove it:

docker rmi --force DOCKER_IAMGE_NAME

@thaJeztah

Introduction

This article title is quite long. But it is actually to inform completely the error message occurs open removing a docker image. This article has a specific subject to remove a docker image. It is removing the docker image which is failing only by using the normal command. That normal command itself exist in this link as an additional reference. It is an article with the title of ‘How to Remove Docker Images in the Local Machine’. So, the normal command is for removing the docker image using ‘docker rmi image_name’. But apparently, the execution of that command failed. The following is an example of that command execution which ends in failure :

latest              fce289e99eb9        8 months ago        1.84kB
root@hostname ~# docker rmi hello-world
Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container ffc2fb7d058e is using its referenced image fce289e99eb9
root@hostname ~#

It appears the image is still exist after executing the above command for removing the docker image. The following is an attempt to list again the available docker image in the local machine just to prove that the docker image is still exist :

root@hostname ~# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
centos-nginx_web              latest              36c49ff2d3bc        2 days ago          457MB
apache_image                  latest              2051d26d51fa        2 days ago          1.61GB
192.168.84.238:5000/busybox   latest              19485c79a9bb        2 weeks ago         1.22MB
php                           apache              aa4bdc74350b        2 weeks ago         414MB
php                           7.1-apache          1b3f4ce0de58        4 weeks ago         405MB
centos                        7                   67fa590cfc1c        4 weeks ago         202MB
centos                        latest              67fa590cfc1c        4 weeks ago         202MB
ubuntu                        latest              a2a15febcdf3        4 weeks ago         64.2MB
tomcat                        latest              6e30b06a90d3        4 weeks ago         506MB
mysql                         5.7                 e1e1680ac726        5 weeks ago         373MB
mysql                         latest              62a9f311b99c        5 weeks ago         445MB
mysql/mysql-cluster           latest              67fd04af4b8e        8 weeks ago         338MB
mysql/mysql-server            5.7                 d1469951af27        8 weeks ago         262MB
tensorflow/tensorflow         latest              7f03c4ff368a        3 months ago        1.17GB
centos                                      9f38484d220f        6 months ago        202MB
registry                      2                   f32a97de94e1        6 months ago        25.8MB
hello-world                   latest              fce289e99eb9        8 months ago        1.84kB
root@hostname ~# 

Completely remove docker image by force

So, in order to remove it completely and successfully, it is necessary to modify the command. Apparently, there is an additional parameter to the command for removing it by force. That argument is the ‘–force’ or ‘-f’ where it follows the actual command. The following is an example of the execution :

root@hostname ~# docker rmi -f hello-world
Untagged: hello-world:latest
Untagged: hello-world@sha256:451ce787d12369c5df2a32c85e5a03d52cbcef6eb3586dd03075f3034f10adcd
Deleted: sha256:fce289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e
root@hostname ~# 

Содержание

  1. Docker unable to delete image must be forced – How we fix it?
  2. What is a Docker image and container?
  3. Causes and fixes for the Docker error unable to delete image
  4. Unable to delete an image as a container is running
  5. Unable to delete an image used by a stopped container
  6. Conclusion
  7. Are you using Docker based apps?
  8. Как удалить все контейнеры Docker, образы, тома и сети
  9. Удаляем все неиспользуемые объекты
  10. Удаление контейнеров Docker
  11. Удаляем один или несколько контейнеров
  12. Удалить все остановленные контейнеры
  13. Удаляем контейнер используя фильтр
  14. Остановить и удалить все контейнеры
  15. Как удалить образы Docker
  16. Удаляем висящие и неиспользуемые образы
  17. Удаляем образы используя фильтры
  18. Удаление Docker томов
  19. Удалить один или несколько томов
  20. Удалить неиспользуемые тома
  21. Удаление сети Docker
  22. Одна или несколько сетей
  23. Удалить неиспользуемую сеть
  24. Удалить сети с помощью фильтров
  25. Как удалить контейнеры, образы, тома и сети Docker
  26. Удаление всех неиспользуемых объектов Docker
  27. Удаление контейнеров Docker
  28. Удаление одного или нескольких контейнеров
  29. Удаление всех остановленных контейнеров
  30. Удаление контейнеров с помощью фильтров
  31. Остановите и удалите все контейнеры
  32. Удаление образов Docker
  33. Удаление одного или нескольких изображений
  34. Удаление болтающихся изображений
  35. Удаление всех неиспользуемых изображений
  36. Удаление изображений с помощью фильтров
  37. Удаление томов Docker
  38. Удаление одного или нескольких томов
  39. Удаление всех неиспользуемых томов
  40. Удаление сетей Docker
  41. Удаление одной или нескольких сетей
  42. Удаление всей неиспользуемой сети
  43. Удаление сетей с помощью фильтров
  44. Выводы

Docker unable to delete image must be forced – How we fix it?

by Keerthi PS | Jan 20, 2020

Oops! Docker is showing the error unable to delete the image (must be forced). We can help you fix it.

Usually, this error shows up if a container is running in the image.

If there are no running containers we can forcefully remove the image.

At Bobcares, we often get requests to fix Docker errors, as a part of our Docker Hosting Support.

Today, our Support Engineers will provide clarification of deleting an image.

What is a Docker image and container?

Many newbies do not have a complete idea of Docker image and container. Hence, they end up in errors while building or managing it.

Docker images and containers are closely related. A running instance of an image is a container. In addition, we can have multiple running containers of one image.

Causes and fixes for the Docker error unable to delete image

Docker does not remove the used objects like containers, images, etc by its own. These unused objects can take up server space. So users remove them.

Here we will discuss the error showed up while removing a Docker image. The command to delete a Docker image is,

But this can often end up in the error unable to delete image must be forced. So let’s see a few instances where this error shows up.

Unable to delete an image as a container is running

Recently, one of our customers got an error while deleting an image. And the error message appeared as,

The error message specifies that a container is using the referred image. So our Support Engineers checked the containers and images in the server.

To list the containers we use the command,

And to list the images we use the command,

Then we stop the container using the command

Later we remove the container using the command,

Finally, remove the image using the command,

This successfully removes the image.

Unable to delete an image used by a stopped container

Another customer had a slightly different situation. And the error message appears as,

Here the image is being used by a stopped container.

Since it is a stopped container, our Support Engineers forcefully removed it. Here we used the command,

Hence, this successfully removed the image. This situation appears as,

[Still, having trouble in fixing Docker errors? – Our Experts are available 24/7.]

Conclusion

In short, Docker error unable to delete image must be forced occur if some containers are running on it. If it is a stopped container we forcefully remove it. If not we stop and remove the container and delete the image. Today, we saw two instances where our Support Engineers fixed this error.

Are you using Docker based apps?

There are proven ways to get even more out of your Docker containers! Let us help you.

Spend your time in growing business and we will take care of Docker Infrastructure for you.

Источник

Как удалить все контейнеры Docker, образы, тома и сети

Docker позволяет быстро создавать, тестировать и развертывать приложения как портативные самостоятельные контейнеры, которые могут работать практически в любой системе.

Docker не удаляет неиспользуемые объекты, такие как контейнеры, образы, тома и сети, если вы явно не скажете ему об этом. При работе с Docker можно легко накопить большое количество мусорных объектов, которые занимают много места на диске и размешивают данные, создаваемые командами Docker.

Это руководство служит «шпаргалкой», чтобы помочь пользователям Docker сохранить свою систему организованной и освободить место на диске, удалив все неиспользуемые контейнеры Docker, образы, тома и сети.

Удаляем все неиспользуемые объекты

Команда docker system prune удалит остановленные контейнеры, все висячие образы и все неиспользуемые сети:

Вы можете использовать флаг -f или —force, чтобы пропустить дополнительный запрос на подтверждение операции.

Удаление контейнеров Docker

Контейнеры Docker не удаляются автоматически при их остановке, если вы специально не указали флаг —rm при его запуске.

Удаляем один или несколько контейнеров

Чтобы удалить один или несколько образов Docker используйте команду docker container rm, после которой следует указать идентификатор контейнера, который необходимо удалить. Список всех активных и неактивных контейнеров можно получить, передав флаг -a команде docker container ls:

В качестве результата выполнения этой команды вы должны увидеть такую таблицу:

Как только вы нашли необходимый идентификатор контейнера, который хотите удалить, передайте его имя команде docker container rm. Например, чтобы удалить первые два контейнера, перечисленных выше выполните команду:

Если вы получаете сообщение об ошибке, подобное приведенному ниже, это означает, что контейнер все еще работает. Перед удалением контейнера, его необходимо остановить.

Error response from daemon: You cannot remove a running container fc983ebf4771d42a8bd0029df061cb74dc12cb174530b2036987575b83442b47. Stop the container before attempting removal or force remove.

Удалить все остановленные контейнеры

Перед выполнением команды можно получить список всех неиспользуемых (остановленных) контейнеров, с помощью следующей команды:

Чтобы удалить все остановленные контейнеры, используйте команду docker container prune:

Вам будет предложено продолжить, используйте флаг-for —force, чтобы пропустить этот вопрос.

Удаляем контейнер используя фильтр

Команда docker container prune позволяет удалить контейнеры в зависимости от их состояния, используя флаг фильтрации —filter. На момент написания этой статьи дополнительно поддерживаются фильтры until и label. Вы можете использовать более одного фильтра, передавая несколько флагов —filter.

Например, чтобы удалить все образы, созданные более 12 часов назад, запустите:

Остановить и удалить все контейнеры

Вы можете получить список всех контейнеров Docker в вашей системе с помощью команды docker container ls -aq. Чтобы остановить все запущенные контейнеры, используйте команду docker container stop, после которой укажите список всех идентификаторов.

После остановки всех контейнеров их можно удалить. Используя команду docker container stop, за которой следует список идентификаторов контейнеров попробуем сделать это:

Как удалить образы Docker

Для удаления одного или нескольких образов Docker используйте команду docker images ls, чтобы найти идентификатор(ID) образа, который нужно удалить.

Вывод должен выглядеть примерно так:

Как только вы найдете образы, которые хотите удалить, передайте их идентификаторы команде docker image rm. Например, чтобы удалить первые два образа, перечисленные в выходных данных выше выполните:

Если вы получите ошибку, подобную следующей, это означает, что образ используется контейнером. Чтобы удалить образ, нужно сначала удалить контейнер.

Error response from daemon: conflict: unable to remove repository reference «centos» (must force) — container cd20b396a061 is using its referenced image 75835a67d134

Удаляем висящие и неиспользуемые образы

Docker имеет команду docker image prune, которая может использоваться для удаления висячих и неиспользуемых образов. Висячий образ — это такой образ, который не отмечен и не используется ни одним контейнером. Для удаления висячих изображений введите:

Вам будет предложено продолжить, используйте флаг -f или —force, чтобы пропустить этот вопрос.

Чтобы удалить все образы, на которые не ссылается ни один существующий контейнер, используйте флаг -a:

Удаляем образы используя фильтры

С помощью команды docker image prune можно удалить образы используя определенные условия с помощью флага фильтрации —filter.

На момент написания этой статьи в настоящее время поддерживаются фильтры until и label. Вы можете использовать более одного фильтра, передавая несколько флагов —filter.

Например, чтобы удалить все изображения, созданные более 6 минут назад, запустите:

Удаление Docker томов

Удалить один или несколько томов

Для начала, используйте команду docker volume ls для поиска идентификатора томов. Это необходимо чтобы удалить один или несколько томов Docker.

Результат выполнения команды должен выглядеть примерно так:

Теперь выберите имя или несколько имен томов, которые вы хотите удалить и передайте их в команду docker volume rm. Например, чтобы удалить первый том, указанный в выводе выше выполните:

Если вы получаете ошибку, подобную следующей, это означает, что выбранный том используется существующим контейнером. Чтобы удалить том, придется сначала удалить контейнер.

Error response from daemon: remove 4e12af8913af888ba67243dec78419bf18adddc3c7a4b2345754b6db64293163: volume is in use — [c7188935a38a6c3f9f11297f8c98ce9996ef5ddad6e6187be62bad3001a66c8e]

Удалить неиспользуемые тома

Для удаления всех неиспользуемых томов существует команда docker volume prune:

Удаление сети Docker

Одна или несколько сетей

Перед удалением одной или нескольких сетей Docker используйте команду docker network ls, чтобы найти идентификатор сетей, которые хотите удалить.

Результат должен быть примерно таким:

После обнаружения названия сетей, передайте их идентификатор сети команде docker network rm. Например, чтобы удалить сеть с именем my-abuzov-network выполните:

Если вы получаете ошибку, подобную следующей, это означает, что сеть используется существующим контейнером. Чтобы удалить сеть, вам придется сначала удалить контейнер.

Error response from daemon: network my-abuzov-network id 6f5293268bb91ad2498b38b0bca970083af87237784017be24ea208d2233c5aa has active endpoints

Удалить неиспользуемую сеть

Используйте команду docker network prune для удаления всех неиспользуемых сетей.

Эту команду можно выполнить принудительно, используя специальный флаг -f или —force.

Удалить сети с помощью фильтров

С помощью команды docker network prune можно удалить сети по условиям, используя флаг фильтрации —filter.

На момент написания этой статьи в настоящее время поддерживаются фильтры until и label. Вы можете использовать более одного фильтра, передавая несколько флагов —filter.

Например, чтобы удалить все сети, созданные более 5 часов назад, запустите:

В этом руководстве мы показали вам некоторые общие команды для удаления контейнеров Docker, образов, томов и сетей.

Рекомендуем дополнительно проверить официальную документацию Docker. Если у вас возникли вопросы, пожалуйста, оставьте комментарий ниже.

Источник

Как удалить контейнеры, образы, тома и сети Docker

Docker — это платформа для контейнеризации с открытым исходным кодом, которая позволяет быстро создавать, тестировать и развертывать приложения в виде переносимых контейнеров, которые могут работать практически где угодно.

При работе с Docker вы можете быстро накопить большое количество неиспользуемых объектов, которые занимают значительное дисковое пространство и загромождают вывод, производимый командами Docker. Docker не удаляет неиспользуемые объекты, такие как контейнеры, изображения, тома и сети, если вы явно не укажете ему это сделать.

Эта статья служит «шпаргалкой», чтобы помочь пользователям Docker поддерживать порядок в своей системе и освобождать дисковое пространство, удаляя неиспользуемые контейнеры Docker, образы, тома и сети.

Удаление всех неиспользуемых объектов Docker

Команда docker system prune удаляет все остановленные контейнеры, зависшие образы и неиспользуемые сети:

Вам будет предложено подтвердить операцию:

Используйте параметр -f ( —force ), чтобы обойти приглашение.

Если вы хотите удалить все неиспользуемые изображения, а не только болтающиеся, добавьте к команде параметр -a ( —all ):

По умолчанию команда не удаляет неиспользуемые тома, чтобы предотвратить потерю важных данных. Чтобы удалить все неиспользуемые тома, передайте параметр —volumes :

Удаление контейнеров Docker

Контейнеры Docker не удаляются автоматически при их остановке, если вы не запустите контейнер с —rm флага —rm .

Удаление одного или нескольких контейнеров

Чтобы удалить один или несколько контейнеров Docker, используйте команду docker container rm , за которой следуют идентификаторы контейнеров, которые вы хотите удалить.

Вы можете получить список всех контейнеров , вызвав команду docker container ls с параметром -a :

Результат должен выглядеть примерно так:

Как только вы узнаете CONTAINER ID контейнеров, которые хотите удалить, передайте его команде docker container rm . Например, чтобы удалить первые два контейнера, перечисленные в выходных данных выше, вы должны запустить:

Если вы получили сообщение об ошибке, подобное показанному ниже, это означает, что контейнер запущен. Вам нужно будет остановить контейнер, прежде чем снимать его.

Удаление всех остановленных контейнеров

Чтобы удалить все остановленные контейнеры, вызовите команду docker container prune :

Если вы хотите получить список всех неработающих (остановленных) контейнеров, которые будут удалены с помощью docker container prune , используйте следующую команду:

Удаление контейнеров с помощью фильтров

Команда docker container prune позволяет удалять контейнеры в зависимости от определенного условия с помощью параметра —filter .

На момент написания этой статьи в настоящее время поддерживаются фильтры until и label . Вы можете указать более одного фильтра, используя несколько параметров —filter .

Например, чтобы удалить все изображения, созданные более 12 часов назад, вы должны запустить:

Остановите и удалите все контейнеры

Чтобы остановить все запущенные контейнеры, введите команду docker container stop а затем идентификаторы контейнеров:

Команда docker container ls -aq генерирует список всех контейнеров.

После остановки всех контейнеров удалите их с помощью команды docker container rm , а затем списка идентификаторов контейнеров.

Удаление образов Docker

Когда вы загружаете образ Docker, он сохраняется на сервере, пока вы не удалите его вручную.

Удаление одного или нескольких изображений

Чтобы удалить один или несколько образов Docker, сначала вам нужно найти идентификаторы образов:

Результат должен выглядеть примерно так:

После того, как вы найдете изображения, которые хотите удалить, передайте их IMAGE ID команде docker image rm . Например, чтобы удалить первые два изображения, перечисленные в выходных данных выше, вы должны запустить:

Если вы получили сообщение об ошибке, подобное приведенному ниже, это означает, что существующий контейнер использует изображение. Чтобы удалить изображение, вам сначала нужно удалить контейнер.

Удаление болтающихся изображений

Docker предоставляет команду удаления docker image prune которую можно использовать для удаления оборванных и неиспользуемых образов.

Оборванное изображение — это изображение, которое не помечено и не используется никаким контейнером. Чтобы удалить болтающиеся изображения, введите:

Удаление всех неиспользуемых изображений

Чтобы удалить все изображения, на которые не ссылается какой-либо существующий контейнер, а не только висячие, используйте команду prune с параметром -a :

Удаление изображений с помощью фильтров

С помощью команды docker image prune вы также можете удалять изображения в зависимости от определенного условия с параметром —filter .

На момент написания этой статьи в настоящее время поддерживаются фильтры until и label . Вы можете использовать более одного фильтра.

Например, чтобы удалить все изображения, созданные более семи дней (168 часов) назад, вы должны запустить:

Удаление томов Docker

Удаление одного или нескольких томов

Чтобы удалить один или несколько томов Docker, запустите команду docker volume ls чтобы найти ID томов, которые вы хотите удалить.

Результат должен выглядеть примерно так:

Как только вы найдете VOLUME NAME тома томов, которые хотите удалить, передайте их команде docker volume rm . Например, чтобы удалить первый том, указанный в выходных данных выше, запустите:

Если вы получаете сообщение об ошибке, подобное показанной ниже, это означает, что существующий контейнер использует том. Чтобы удалить объем, вам сначала нужно удалить емкость.

Удаление всех неиспользуемых томов

Чтобы удалить все неиспользуемые тома, выполните команду docker image prune :

Используйте параметр -f или —force чтобы обойти приглашение.

Удаление сетей Docker

Удаление одной или нескольких сетей

Чтобы удалить одну или несколько сетей Docker, используйте команду docker network ls чтобы найти идентификаторы сетей, которые вы хотите удалить.

Результат должен выглядеть примерно так:

После того как вы найдете сети, которые хотите удалить, передайте их NETWORK ID команде docker network rm . Например, чтобы удалить сеть с именем my-bridge-network , запустите:

Если вы получаете сообщение об ошибке, подобное показанной ниже, это означает, что существующий контейнер использует сеть. Чтобы удалить сеть, вы должны сначала удалить контейнер.

Удаление всей неиспользуемой сети

Используйте команду docker network prune чтобы удалить все неиспользуемые сети.

Вам будет предложено продолжить:

Удаление сетей с помощью фильтров

С помощью команды docker network prune вы можете удалять сети в зависимости от условий, используя параметр —filter .

На момент написания этой статьи в настоящее время поддерживаются фильтры until и label . Вы можете использовать более одного фильтра, используя несколько параметров —filter .

Например, чтобы удалить все сети, созданные более 12 часов назад, запустите:

Выводы

Мы показали вам некоторые из распространенных команд для удаления контейнеров, образов, томов и сетей Docker.

Вам также следует ознакомиться с официальной документацией Docker .

Если у вас есть вопросы, оставьте комментарий ниже.

Источник

Oops! Docker is showing the error unable to delete the image (must be forced). We can help you fix it.

Usually, this error shows up if a container is running in the image.

If there are no running containers we can forcefully remove the image.

At Bobcares, we often get requests to fix Docker errors, as a part of our Docker Hosting Support.

Today, our Support Engineers will provide clarification of deleting an image.

What is a Docker image and container?

Many newbies do not have a complete idea of Docker image and container. Hence, they end up in errors while building or managing it.

Docker images and containers are closely related. A running instance of an image is a container. In addition, we can have multiple running containers of one image.

Causes and fixes for the Docker error unable to delete image

Docker does not remove the used objects like containers, images, etc by its own. These unused objects can take up server space. So users remove them.

Here we will discuss the error showed up while removing a Docker image. The command to delete a Docker image is,

docker rmi 

But this can often end up in the error unable to delete image must be forced. So let’s see a few instances where this error shows up.

Unable to delete an image as a container is running

Recently, one of our customers got an error while deleting an image. And the error message appeared as,

Error response from daemon: conflict: unable to remove repository reference "" (must force) - container  is using its referenced image 

The error message specifies that a container is using the referred image. So our Support Engineers checked the containers and images in the server.

To list the containers we use the command,

docker ps -a

And to list the images we use the command,

docker images

Then we stop the container using the command

docker stop 

Later we remove the container using the command,

docker rm 

Finally, remove the image using the command,

docker rmi 

This successfully removes the image.

Unable to delete an image used by a stopped container

Another customer had a slightly different situation. And the error message appears as,

Error response from daemon: conflict: unable to delete  (must be forced) - image is being used by stopped container 

Here the image is being used by a stopped container.

Since it is a stopped container, our Support Engineers forcefully removed it. Here we used the command,

docker rmi  --force

Hence, this successfully removed the image. This situation appears as,

Docker unable to delete image must be forced.

[Still, having trouble in fixing Docker errors? – Our Experts are available 24/7.]

Conclusion

In short, Docker error unable to delete image must be forced occur if some containers are running on it. If it is a stopped container we forcefully remove it. If not we stop and remove the container and delete the image. Today, we saw two instances where our Support Engineers fixed this error.

Are you using Docker based apps?

There are proven ways to get even more out of your Docker containers! Let us help you.

Spend your time in growing business and we will take care of Docker Infrastructure for you.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

Skip to content

When tried to remove an image(hello-world) from docker, we have received below error.

docker image rm hello-world

Error response from daemon: conflict: unable to remove repository reference "hello-world" (must force) - container 2399c8b64bc8 is using its referenced image bf756fb1ae65

Docker Error response from daemon conflict unable to remove repository reference

Reason:

Make sure that a container does not exist that is using the image. The container can be stopped and thus won’t show when when run docker ps. You can do docker container ls -a to view all running and stopped container.

docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2399c8b64bc8 hello-world "/hello" 13 hours ago Exited (0) 13 hours ago eager_mirzakhani

Solution:
Remove the stopped container and then remove the image as shown below.

docker container rm 2399c8b64bc8 docker image rm hello-world

КАК УДАЛИТЬ ДОКЕР ОБРАЗЫ И КОНТЕЙНЕРЫ?

Запущенные образы и контейнеры без угрызения совести занимают ресурсы компьютера, даже тогда, когда Вы их уже не используете. Поэтому, чтобы не грузить машину лишними прожорливыми «хвостами», рекомендуется своевременно закрыть или удалить докер образы и контейнеры, ставшие ненужными.

Так как контейнер является работающим приложением, построенным на основе образа, то перед удалением образа, необходимо закрыть все созданные на его основе контейнеры. Прежде, чем мы рассмотрим команды, позволяющие это сделать, предлагаю взглянуть на полезные флаги, упрощающие процесс удаления:

При удалении контейнеров и образов, мы будем добавлять к командам флаги: -a и -q.
Флаг -a эквивалентен — -all и означает, что нужно применить команду ко всем элементам
Флаг -q эквивалентен — — quiet и позволяет получить только идентификаторы элементов

УДАЛЯЕМ КОНТЕЙНЕРЫ

1.Узнаем ID контейнера или контейнеров, которые нужно закрыть

Для удаления контейнера нам нужно знать его идентификатор. Получить информацию о всех созданных контейнерах можно с помощью команды:

<strong>docker ps -a</strong>

Идентификаторы контейнеров выведены в столбце CONTAINER ID:

удалить докер образы
Как узнать ID контейнера?

2. Удаляем один или несколько контейнеров

Для удаления контейнеров существует команда:

<strong>docker rm</strong> <<strong>ID контейнера</strong> <strong>или ID нескольких контейнеров, записанных через пробел</strong>>

ПРИМЕРЫ УДАЛЕНИЯ КОНТЕЙНЕРОВ:

  • Рассмотрим пример удаления контейнера с ID=b3026c5a9fa5. В данном случае потребуется ввести:
docker rm b3026c5a9fa5
  • Для удаления двух контейнеров с идентификаторами: 5b712b5f26f4 и 7с3860367367, потребуется ввести:
docker rm 5b712b5f26f4 7с3860367367

3. Удаляем все контейнеры

Чтобы закрыть все контейнеры одной командой, введите:

<strong>docker rm $(docker ps -a -q)</strong>

УДАЛЯЕМ ОБРАЗЫ ДОКЕРА

1. Узнаем имена и идентификаторы образов, которые нужно закрыть

Для того, чтобы получить информацию о запущенных образах, нужно ввести команду:

<strong>docker images</strong>
удалить докер образы
Как узнать ID и имя образа докера?

В столбце «REPOSITORY» можно узнать имя, а в столбце «IMAGE_ID» — идентификатор образа, который нужно закрыть.

2. Удаляем один или несколько образов

Для удаления одного или нескольких образов, нужно ввести команду:

<strong>docker rmi</strong> <<strong>имя или ID одного или нескольких образов, записанных через пробел</strong>>

ПРИМЕРЫ УДАЛЕНИЯ ОБРАЗОВ:

  • Например, для удаления образа по имени «tort», наберем:
docker rmi tort
  • А для удаления двух образов с именами «tort» и «ubuntu», введем:
docker rmi tort ubuntu

Если при удалении образа возникает подобная ошибка:
Error response from daemon: conflict: unable to remove repository reference «tort» (must force) — container ee130eb8eaf5 is using its referenced image 60a325a15a7e, это значит, что Вы поспешили с закрытием образа, забыв предварительно удалить связанные с этим образом контейнеры. О том, как удалить контейнеры, смотрите информацию выше, в предыдущем разделе статьи.

4. Удаляем все образы

Для удаления всех образов введем команду:

docker rmi $(docker images -q)

Если при удалении образов возникнут подобные ошибки:
Error response from daemon: conflict: unable to delete 51d053942024 (must be forced) — image is referenced in multiple repositories
или такие:
Error response from daemon: conflict: unable to delete b0d6bcf625c7 (cannot be forced) — image has dependent child images
Тогда можно:
1.Удалить образ принудительно, добавив к командам удаления флаг -f:
docker rmi <имя или ID образа> -f

2.Удалить все образы принудительно:
docker rmi $(docker images -q) -f

Как известно, «чистота — залог здоровья»! Поэтому будем считать, что удалив ненужные образы и контейнеры докера, мы выполнили миссию компьютерного доктора и добавили здоровья своей рабочей лошадке!

I’ve had to brush up my Docker skills again due to some side projects I’m working on. So I ran into some basic issues I wanted to elaborate on. In this blog post: “image is referenced in multiple repositories.”

I had to remove a Docker image from my machine using the rmi command.

To my surprise, I was unable to delete the image. The following error was thrown:

Error response from daemon: conflict: unable to delete <image ID> (must be forced) - image is referenced in multiple repositories

For example, this can happen when you have an image that is referenced by multiple tags or multiple names. In the following example, I created two mirrors of redis.

docker pull redis:latest
docker tag redis:latest redis:my_new_tag
docker tag redis:latest redis_mirror:latest

The result is:

When you try to remove the image by ID, Docker does not know which image (mirror) you are referring to. There are two ways one can tackle this.

Instead of trying to remove the image using its image id, you’ll have to remove all repositories individually, by referencing them with their name and tag. The last one can be removed by referring to the image ID.

docker rmi redis:my_new_tag
rocker rmi redis_mirror
docker rmi 881

But there is also a faster solution. You can force docker to remove an image. By using the -f flag and the image’s (short or long) ID, the image gets untagged and is removed. Like this:

And that’s how it’s done.

Say thanks, ask questions or give feedback

Technologies get updated, syntax changes and honestly… I make mistakes too. If something is incorrect, incomplete or doesn’t work, let me know in the comments below and help thousands of visitors.

Понравилась статья? Поделить с друзьями:
  • Docker error response from daemon conflict the container name is already in use by container
  • Docker error response from daemon cgroups cannot find cgroup mount destination unknown
  • Docker error response from daemon bad response from docker engine
  • Docker error pool overlaps with other one on this address space
  • Docker error during connect windows 10