Docker Compose: Nie ma takiego obrazu

122

Kiedy biegnę docker-compose up, pojawia się ten błąd:

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
źródło

Odpowiedzi:

243

Problem spowodował stara pamięć podręczna, nie udało mi się uruchomić tego polecenia za pierwszym razem i docker-compose utworzyć już utworzone obrazy, których nie widzę docker images.

Musisz sprawdzić docker-compose psi usunąć wszystkie stare obrazy za pomocą tego polecenia docker-compose rm, a następnie odbudować ponownie.

Bensson
źródło
2
Spójrz też na odpowiedź Shivy. Zastanawiasz się, dlaczego ulepszenie tego zajęło prawie rok? No dalej, SO!
Adam
2
stackoverflow.com/a/43381147/8283848 to zrobi magię idealnie (dla mnie)
JPG
warto wspomnieć, że docker-compose rm nie ma następującego identyfikatora parametru obrazu, w przeciwieństwie do przypadku z docker rmi #id. W przeciwnym razie nie mógłbym usunąć istniejącej nazwy obrazu docker rmi 2d0c8d6058f4_myprojectcom_app_1
docker
125

Napotkałem ten błąd podczas korzystania z Docker Machine w systemie Windows.

Wygląda na to, że pojemnik zbuntował się; docker-compose rm --allspowodował zawieszenie się całej powłoki i ponowne uruchomienie Docker Machine również nie pomogło, kontener nadal pojawiał się podczas wykonywania docker-compose ps.

Rozwiązaniem było wykonanie docker-compose down.

Matthias Braun
źródło
lepszym sposobem jest usunięcie tylko uszkodzonych obrazów za pomocą, docker-compose rm webb webc webaa następnie
pobranie
1
@OzzyCzech Jestem pewien, że to było przydatne w twojej sytuacji. Ale w moim docker-compose rmzamroził moją skorupę.
Matthias Braun
Nie miałem problemu z zawieszaniem się, ale docker-compose rm --allnie usuwałem wszystkich obrazów. docker-compose down naprawił problem. (Ubuntu 16)
Raheel
Dziękuję @MatthiasBraun. U mnie zadziałało na ubuntu 17.10
Raj Kumar N
45

Aby rozwiązać ten problem

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

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

Aby zobaczyć wszystkie obrazy

docker images -a
Yogesh Yadav
źródło
1
Problem dotyczy brakujących obrazów i jako takich uporaz downpoleceń nie działają. Prawidłowa odpowiedź to użyć docker-compose rmdo wyczyszczenia obrazów i build-> upponownie.
Bhargav Nanekalva
2
Bhargav Szanowny Panie, Musisz przeprowadzić więcej badań, zanim zgodzisz się na odpowiedź, szczególnie jeśli nie masz wystarczającego doświadczenia z tą technologią. Lub możesz przynajmniej zobaczyć poprzednie odpowiedzi (autorstwa Matthiasa Brauna), które mówią to samo, co docker-compose down rozwiąże problem. Rozwiązał problem także dla mnie wraz z innymi osobami (mac - 10.11.5) (docker - 17.03.1-ce).
Yogesh Yadav
Wspomniał o używaniu, rma także w komentarzu pod swoją odpowiedzią.
Bhargav Nanekalva
1
Mówi, że rm zamroził jego skorupkę i nie rozwiązuje problemu za niego.
Yogesh Yadav
1
To działa lepiej niż docker-compose rm. Dziękuję Ci!
varagrawal
19

Problem został rozwiązany dla mnie przez działanie

docker-compose ps

znalezienie problematycznej nazwy kontenera, a następnie (notatka działa dockertutaj)

docker rm <problematic container name>
srt32
źródło
2

W Ubuntu 18.04.4 i Docker w wersji 19.03.6

Próbowałem odpowiedzi Yogesha Yadava, ale

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

polecenie zamroziło mój terminal podczas uruchamiania `` bieżących blokad ''.

Udało mi się to rozwiązać, wymieniając kontenery:

$ docker-compose ps

I usuwanie problematycznych kontenerów jeden po drugim, uruchamiając:

$ docker rm <name_of_the_problematic_container>
Nisal Gunawardana
źródło
0

Przykłady użycia weba, webb i webc, takie jak „ Jak używać Docker Compose do uruchamiania złożonych aplikacji z wieloma kontenerami na Raspberry Pi ” zakładają, że tworzysz te obrazy.

weba:
  build: .
  expose:
    - 80

Oznacza to, że masz (w /home/benson/Docker/HaproxyMy) taki Dockerfile jak ten, który zostanie zinterpretowany przez kompilację. aby zbudować te obrazy.

VonC
źródło
Dzięki, znalazłem sprawę główną, stara pamięć podręczna powoduje ten problem, Thx. Poniżej napiszę kroki.
Bensson