Docker Compose: Такого зображення немає


122

Під час запуску docker-compose upя отримую цю помилку:

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"

Відповіді:


243

Старий кеш викликав цю проблему, я не зміг запустити цю команду вперше і докер-склав вже створені зображення, з яких я не бачу docker images.

Потрібно перевірити docker-compose psцю команду та видалити всі старі зображення за допомогою цієї команди docker-compose rm, а потім відновити її знову.


2
Подивіться також на відповідь Шиви. Цікаво, чому на це покращився майже рік? Давай, ТАК!
Адам

2
stackoverflow.com/a/43381147/8283848 це зробить магію ідеально (для мене)
JPG

Можливо, добре згадати, що rcker-compose rm не має наступного ідентифікатора параметра зображення, на відміну від випадку з docker rmi #id. В іншому випадку я не зміг видалити існуючу назву docker rmi 2d0c8d6058f4_myprojectcom_app_1
докерного

125

Я зіткнувся з цією помилкою під час використання Docker Machine у Windows.

Начебто контейнер пішов ізгоєм; docker-compose rm --allзмусили всю оболонку замерзнути, і перезапуск Docker Machine також не допоміг, контейнер все ще з’явився під час роботи docker-compose ps.

Рішення було виконати docker-compose down.


кращий спосіб - видалити лише несправні зображення, docker-compose rm webb webc webaа потім витягнути або створити нове
OzzyCzech

1
@OzzyCzech Я впевнений, що це було корисно у вашій ситуації. Але в моєму docker-compose rmзамерзла моя оболонка.
Маттіас Браун

У мене не було проблеми з заморожуванням, але docker-compose rm --allне було видалено всі зображення. docker-compose вниз вирішив проблему. (Ubuntu 16)
Рахіль

Дякую @MatthiasBraun. Це працювало для мене на ubuntu 17.10
Радж Кумар N

45

Щоб вирішити це питання

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

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

Щоб побачити всі зображення

docker images -a

1
Проблема з відсутніми зображеннями і , як такі , upі downкоманди не працюють. Правильна відповідь - використовувати docker-compose rmдля очищення зображень і build-> upще раз.
Бхаргав Нанекальва

2
Бхаргав, сер. Вам потрібно зробити більше досліджень, перш ніж спеціально скасовувати відповідь, якщо у вас недостатньо досвіду роботи з цією технологією. Або ви можете принаймні побачити попередні відповіді (Маттіас Браун), які говорять те саме, що докер-скласти вирішить проблему. Він вирішив це питання і для мене разом з іншими людьми (mac - 10.11.5) (docker - 17.03.1-ce).
Йогеш Ядав

Він згадував про використання, rmа також у коментарі під своєю відповіддю.
Бхаргав Нанекальва

1
Він каже, що РМ заморозив свою оболонку і не вирішує для нього проблеми.
Йогеш Ядав

1
Це працює краще, ніж docker-compose rm. Дякую!
varagrawal

19

Проблема була вирішена для мене

docker-compose ps

знаходження проблемної назви контейнера, а потім (примітка запущена dockerтут)

docker rm <problematic container name>

2

На Ubuntu 18.04.4 та Docker версії 19.03.6

Я спробував відповідь Йогеша Ядава, але

$ docker-compose -f docker-compose-filename.yml вгору

команда заморозила мій термінал при запуску "поточних блокувань".

Мені вдалося вирішити це, перерахувавши контейнери:

$ docker-compose ps

І виймаючи проблемні контейнери один за одним, запускаючи:

$ docker rm <name_of_the_problematic_container>

0

Приклади використання weba, webb та webc типу " Як використовувати Docker Compose для запуску складних багатоконтейнерних програм на вашому Raspberry Pi " припускають, що ви створюєте ці зображення.

weba:
  build: .
  expose:
    - 80

Значить, у вас є (в /home/benson/Docker/HaproxyMy) Dockerfile подібний до цього, який буде інтерпретований збіркою. побудувати ці образи.


Дякую, я знайшов кореневий випадок. Старий кеш викликає цю проблему, Thx. Я напишу кроки нижче.
Бенссон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.