He estado usando Docker en mi PC para ejecutar Quantum GIS con las siguientes 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:
Error response from daemon: Conflict. The name "qgis-desktop-2-4" is already in use by container 235566ae17b8. You have to delete (or rename) that container to be able to reuse that name.
No estoy del todo 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 lanzado correctamente 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?
Parece que ya existe un contenedor con el nombre qgis-desktop-2-4 en el sistema. Puede verificar la salida del siguiente comando para confirmar si realmente existe:
$ docker ps -aLa última columna en la salida del comando anterior es para nombres.
Si el contenedor existe, elimínelo usando:
$ docker rm qgis-desktop-2-4O usando a la fuerza,
$ docker rm -f qgis-desktop-2-4Y luego intente crear un nuevo contenedor.
Para las personas que llegan aquí desde Google como yo y solo quieren crear contenedores utilizando varios archivos docker-compose con un servicio compartido:
A veces, tiene diferentes proyectos que compartirían, por ejemplo, un contenedor acoplable de base de datos. Solo la primera ejecución debe iniciar DB-Docker, la segunda debe detectar que DB ya se está ejecutando y omitir esto. Para lograr tal comportamiento, necesitamos que los Dockers estén en la misma red y en el mismo proyecto . Además, el nombre del contenedor docker debe ser el mismo.
Primero: establezca la misma red y nombre de 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º: Establezca el mismo proyecto usando -p param o coloque ambos archivos en el mismo directorio.
docker-compose -p {projectname} up
En lugar de comando: docker run
Deberías usar:
docker start **CONTAINER ID**porque el contenedor ya existe
Recibí este error bastante, así que ahora hago una eliminación por lotes de todos los contenedores no utilizados a la vez:
docker container prune agregue -f para forzar la eliminación sin aviso.
Para enumerar todos los contenedores no utilizados (sin retirar):
docker container ls -a --filter status=exited --filter status=createdVea aquí más ejemplos de cómo podar otros objetos (redes, volúmenes, etc.).
No hay problemas con el último kartoza/qgis-desktop
corrí
docker pull kartoza/qgis-desktopseguido por
docker run -it --rm --name "qgis-desktop-2-4" -v ${HOME}:/home/${USER} -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY kartoza/qgis-desktop:latestLo intenté varias veces sin el error de conflicto: debe salir de la aplicación de antemano. Además, tenga en cuenta que los parámetros difieren ligeramente.