Docker Compose: Kein solches Bild

122

Beim Ausführen docker-compose upwird folgende Fehlermeldung angezeigt:

root@ubuntu:/home/benson/Docker/HaproxyMy# docker-compose up
Recreating 950ddc308278_950ddc308278_950ddc308278_950ddc308278_950ddc308278_haproxymy_webb_1
Recreating 485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_haproxymy_webc_1
Recreating 2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_haproxymy_weba_1

ERROR: for webb  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

ERROR: for webc  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

ERROR: for weba  No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099

docker-compose.yml::

weba:
    build: ./web
    expose:
        - 80

webb:
    build: ./web
    expose:
        - 80

webc:
    build: ./web
    expose:
        - 80


haproxy:

    image: haproxy:latest

    volumes:

        - ./haproxy:/haproxy-override
        - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
    links:

        - weba
        - webb
        - webc
    ports:

        - "80:80"
        - "70:70"
    expose:

        - "80"
        - "70"
Bensson
quelle

Antworten:

242

Der alte Cache hat dieses Problem verursacht. Ich konnte diesen Befehl beim ersten Mal nicht ausführen und habe bereits erstellte Bilder vom Docker erstellt, von denen ich nichts sehen kann docker images.

Sie müssen docker-compose psmit diesem Befehl alle alten Images überprüfen und entfernen docker-compose rmund dann erneut erstellen .

Bensson
quelle
2
Schau dir auch Shivas Antwort an. Frage mich, warum es fast ein Jahr gedauert hat, um dieses zu verbessern? Komm schon, SO!
Adam
2
stackoverflow.com/a/43381147/8283848 dies wird die Magie perfekt machen (für mich)
JPG
Es könnte gut sein zu erwähnen, dass Docker-Compose rm im Gegensatz zu Docker rmi #id keine folgende Parameter-ID des Bildes enthält. Andernfalls konnte ich keinen vorhandenen Namen eines Docker-Compose-Bildes entfernen, das überdocker rmi 2d0c8d6058f4_myprojectcom_app_1
FantomX1
125

Ich habe diesen Fehler bei der Verwendung von Docker Machine unter Windows festgestellt .

Ein Container scheint Schurke geworden zu sein; docker-compose rm --allDie gesamte Shell fror ein und ein Neustart von Docker Machine half auch nicht. Der Container wurde dabei immer noch angezeigt docker-compose ps.

Die Lösung war auszuführen docker-compose down.

Matthias Braun
quelle
Besser ist es, nur docker-compose rm webb webc weba
fehlerhafte
1
@ OzzyCzech Ich bin sicher, das war in Ihrer Situation nützlich. Aber in meiner docker-compose rmgefror meine Muschel.
Matthias Braun
Ich hatte kein Problem mit dem Einfrieren, entfernte aber docker-compose rm --allnicht alle Bilder. Docker-Compose Down hat das Problem behoben. (Ubuntu 16)
Raheel
Vielen Dank, dass Sie @MatthiasBraun. Es funktionierte für mich am Ubuntu 17.10
Raj Kumar N
45

Um dieses Problem zu lösen

docker-compose -f docker-compose-filename.yml down

docker-compose -f docker-compose-filename.yml up

Um alle Bilder zu sehen

docker images -a
Yogesh Yadav
quelle
1
Das Problem ist , mit fehlenden Bildern und als solche upund downBefehle funktionieren nicht. Die richtige Antwort ist docker-compose rm, Bilder zu löschen und build-> uperneut.
Bhargav Nanekalva
2
Bhargav Sir, Sie müssen mehr Nachforschungen anstellen, bevor Sie eine Antwort ablehnen, insbesondere wenn Sie nicht genügend Erfahrung mit dieser Technologie haben. Oder Sie können zumindest frühere Antworten (von Matthias Braun) sehen, die das gleiche sagen, was Docker-Compose-Down das Problem lösen wird. Es hat das Problem für mich auch zusammen mit anderen Leuten (mac - 10.11.5) (Docker - 17.03.1-ce) gelöst.
Yogesh Yadav
Er erwähnte die Verwendung rmund auch in einem Kommentar unter seiner Antwort.
Bhargav Nanekalva
1
Er sagt rm fror seine Schale und nicht das Problem für ihn löst.
Yogesh Yadav
1
Das funktioniert besser als docker-compose rm. Danke dir!
Varagrawal
19

Das Problem wurde für mich dadurch gelöst

docker-compose ps

Finden des problematischen Containernamens und dann (Hinweis läuft dockerhier)

docker rm <problematic container name>
srt32
quelle
2

Unter Ubuntu 18.04.4 und Docker Version 19.03.6

Ich habe Yogesh Yadavs Antwort versucht, aber

$ docker-compose -f docker-compose-filename.yml up

Befehl hat mein Terminal eingefroren, als 'aktuelle Sperren' ausgeführt wurden.

Ich konnte es lösen, indem ich die Container auflistete:

$ docker-compose ps

Und entfernen Sie die problematischen Container nacheinander und führen Sie Folgendes aus:

$ docker rm <name_of_the_problematic_container>
Nisal Gunawardana
quelle
0

Beispiele für die Verwendung von weba, webb und webc wie " Verwendung von Docker Compose zum Ausführen komplexer Multi-Container-Apps auf Ihrem Raspberry Pi " setzen voraus, dass Sie diese Bilder erstellen.

weba:
  build: .
  expose:
    - 80

Das heißt , Sie haben (in /home/benson/Docker/HaproxyMy) eine Dockerfile wie diese , die vom Build interpretiert werden. um diese Bilder zu erstellen.

VonC
quelle
Danke, ich habe den Root-Fall gefunden. Der alte Cache verursacht dieses Problem, Thx. Ich werde die folgenden Schritte schreiben.
Bensson