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"

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.


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.


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

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>

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>

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.


Dzięki, znalazłem sprawę główną, stara pamięć podręczna powoduje ten problem, Thx. Poniżej napiszę kroki.
Bensson
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.