Pregunta El error de Docker no puede eliminar el contenedor docker, conflicto: no se puede eliminar la referencia del repositorio


Quiero eliminar el contenedor en Docker, pero se produce un error cuando desea eliminar

Mi siguiente paso antes de quitar el contenedor, mira la lista del contenedor existente

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)

uno quiero eliminar la lista, es decir "entrenamiento / aplicación web" pero un error que ocurrió

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]

Si el contenedor se está ejecutando en las imágenes?

Por favor ayuda


74
2017-11-25 03:06


origen


Respuestas:


Primero, elimine los nombres de los contenedores

$ sudo docker rm backstabbing_ritchie

El resultado

$ sudo docker rm backstabbing_ritchie
  backstabbing_ritchie

elimine la segunda parte, que se incluye en el contenedor que se eliminará

$ sudo docker rm drunk_feynman 
  drunk_feynman

En segundo lugar, retire el contenedor

$ sudo docker rmi training/webapp

El resultado

$ 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

Verifica el continuador

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

53
2017-11-25 03:21



Hay una diferencia entre las imágenes del acoplador y los contenedores del acoplador. Mira esto ASI pregunta.

En resumen, un contenedor es una instancia en ejecución de una imagen. por eso no puede eliminar una imagen si hay un contenedor en ejecución desde esa imagen. Solo necesita eliminar el contenedor primero.

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

42
2017-10-27 11:43



Si tiene varios contenedores docker lanzados, use esto

$ docker rm $(docker ps -aq)

Eliminará todos los usuarios conectados enumerados en el comando "ps -aq".

Fuente: aaam en https://github.com/docker/docker/issues/12487


19
2018-06-21 15:20



puedes usar -f opción para obligar a eliminar los contenedores.

sudo docker rmi -f training/webapp

Puede detener los contenedores usando sudo docker stop training/webapp antes de borrar


18
2017-11-25 03:19



Si desea limpiar imágenes y contenedores de acoplado

PRECAUCIÓN: esto va a enjuagar todo

detener todos los contenedores

docker stop $(docker ps -a -q)

eliminar todos los contenedores

docker rm $(docker ps -a -q)

eliminar todas las imágenes

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

5
2018-05-04 11:06



Noté que esta es una pregunta de hace dos años, pero aún quiero compartir mi solución para esta pregunta en particular:

En primer lugar, ejecuta docker container ls -a para enumerar todos los contenedores que tiene e identificar el deseo que desea eliminar.

En segundo lugar, elimine el que tiene el comando docker container rm <CONTAINER ID> (Si el contenedor se está ejecutando actualmente, primero debe detenerlo, ejecutar docker container stop <CONTAINER ID> para detener con gracia el contenedor especificado, si no lo detiene por la razón que sea, alternativamente puede ejecutar docker container kill <CONTAINER ID> to force shutdown of the specified container)

En tercer lugar, eliminar el contenedor ejecutando docker container rm <CONTAINER ID>.

Por último, puedes correr docker image ls -a para ver todas las imágenes y eliminar la que desea ejecutando docker image rm <hash>.


3
2018-03-27 22:49