linux - hub - Respuesta de error de Docker del daemon: "Conflicto... ya está en uso por contenedor"
(cannot be forced)-image has dependent child images (2)
He estado usando Docker en mi para ejecutar Quantum GIS siguiendo las instrucciones que encontré aquí: docker-qgis-desktop: un contenedor Docker simple que ejecuta el escritorio QGIS
Todo ha estado funcionando bien hasta la semana pasada cuando comencé a recibir este mensaje de error:
Respuesta de error del demonio: Conflicto. El nombre "qgis-desktop-2-4" ya está en uso en el contenedor 235566ae17b8. Debe eliminar (o renombrar) ese contenedor para poder reutilizar ese nombre.
No estoy completamente seguro de lo que esto significa a pesar de buscar pistas en este sitio. No había cambiado nada antes de que esto sucediera y he estado iniciando con éxito el contenedor con este comando:
sudo docker run --rm --name="qgis-desktop-2-4" -i -t -v ${HOME}:/home/${USER} -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY kartoza/qgis-desktop:latest
¿Cómo puedo arreglar esto?
Para las personas que llegan aquí desde Google como yo y solo quieren construir contenedores usando múltiples archivos de composición acoplable con un servicio compartido:
A veces tiene diferentes proyectos que compartirían, por ejemplo, un contenedor de base de datos. Solo la primera ejecución debe iniciar DB-Docker, la segunda debe detectar que la base de datos ya se está ejecutando y omitir esto. Para lograr ese comportamiento, necesitamos que los Dockers se instalen en la misma red y en el mismo proyecto . Además, el nombre del contenedor docker debe ser el mismo.
Primero: establezca el mismo nombre de red y contenedor en docker-compose
docker-compose en el proyecto 1:
version: ''3''
services:
service1:
depends_on:
- postgres
# ...
networks:
- dockernet
postgres:
container_name: project_postgres
image: postgres:10-alpine
restart: always
# ...
networks:
- dockernet
networks:
dockernet:
docker-compose en el proyecto 2:
version: ''3''
services:
service2:
depends_on:
- postgres
# ...
networks:
- dockernet
postgres:
container_name: project_postgres
image: postgres:10-alpine
restart: always
# ...
networks:
- dockernet
networks:
dockernet:
2º:
Configure el mismo proyecto usando
-p
param
o coloque ambos archivos en el mismo directorio.
docker-compose -p {projectname} up
Parece que ya existe un contenedor con el nombre
qgis-desktop-2-4
en el sistema.
Puede verificar el resultado del siguiente comando para confirmar si realmente existe:
$ docker ps -a
La última columna en la salida del comando anterior es para nombres.
Si el contenedor existe, retírelo usando:
$ docker rm qgis-desktop-2-4
O usando con fuerza,
$ docker rm -f qgis-desktop-2-4
Y luego intente crear un nuevo contenedor.