it-swarm.com.de

Docker-Fehlerantwort vom Daemon: "Konflikt ... wird bereits von Container verwendet"

Ich habe Docker auf meinem verwendet, um Quantum GIS auszuführen. Befolgen Sie die Anweisungen, die ich hier gefunden habe: docker-qgis-desktop - Ein einfacher Docker-Container, auf dem der QGIS-Desktop ausgeführt wird

Alles lief gut bis letzte Woche, als ich diese Fehlermeldung bekam:

Fehlerantwort vom Daemon: Konflikt. Der Name "qgis-desktop-2-4" wird bereits vom Container 235566ae17b8 verwendet. Sie müssen diesen Container löschen (oder umbenennen), um diesen Namen wiederverwenden zu können.

Ich bin nicht ganz sicher, was das bedeutet, obwohl ich auf dieser Seite nach Hinweisen gesucht habe. Ich hatte vorher nichts geändert und habe den Container mit diesem Befehl erfolgreich gestartet:

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

Wie kann ich das beheben?

62
marty_c

Es sieht so aus, als ob ein Container mit dem Namen qgis-desktop-2-4 bereits im System vorhanden ist. Sie können die Ausgabe des folgenden Befehls überprüfen, um zu überprüfen, ob er tatsächlich vorhanden ist:

$ docker ps -a

Die letzte Spalte in der Ausgabe des obigen Befehls enthält Namen.

Wenn der Container vorhanden ist, entfernen Sie ihn mit:

$ docker rm qgis-desktop-2-4

Oder gewaltsam verwenden,

$ docker rm -f qgis-desktop-2-4

Versuchen Sie dann, einen neuen Container zu erstellen.

127
Dharmit

Für Leute, die hier von Google wie mir landen und nur Container mit mehreren Docker-Compose-Dateien mit einem gemeinsamen Dienst erstellen möchten:

Manchmal haben Sie unterschiedliche Projekte, die z. ein Datenbank Docker Container. Nur der erste Lauf sollte den DB-Docker starten, der zweite sollte erkennen, dass der DB bereits läuft, und dies überspringen. Um ein solches Verhalten zu erreichen, müssen die Docker in demselben network und in demselben project liegen. Auch der docker-Containername muss derselbe sein.

1st: Legen Sie in Docker-Compose denselben Netzwerk- und Containernamen fest

docker-Compose in Projekt 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 in Projekt 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:

2nd: Stellen Sie dasselbe Projekt mit -pparam ein oder legen Sie beide Dateien in dasselbe Verzeichnis.

docker-compose -p {projectname} up

1
Karl Adler