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"
Bensson
источник

Ответы:

243

Старый кеш вызвал эту проблему, мне не удалось запустить эту команду в первый раз и докер-компоновку уже созданных изображений, которые я не вижу docker images.

Необходимо проверить docker-compose psи удалить все старые образы с помощью этой команды docker-compose rm, а затем заново построить.

Bensson
источник
2
Посмотрите и на ответ Шивы. Интересно, почему на то, чтобы улучшить эту, потребовался почти год? Давай, ТАК!
Адам
2
stackoverflow.com/a/43381147/8283848 это сделает чудо (для меня)
JPG
Было бы неплохо упомянуть, что docker-compose rm не имеет следующего идентификатора параметра изображения, в отличие от случая с docker rmi #id. В противном случае я не смог бы удалить существующее имя образа docker-compose, который был удален и удален с помощьюdocker rmi 2d0c8d6058f4_myprojectcom_app_1
FantomX1
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 down исправил проблему. (Ubuntu 16)
Raheel
Спасибо @MatthiasBraun. Это сработало для меня на ubuntu 17.10
Радж Кумар Н.
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
Бхаргав Сэр, вам нужно провести дополнительные исследования, прежде чем голосовать против ответа, особенно если у вас недостаточно опыта работы с этой технологией. Или вы можете, по крайней мере, увидеть предыдущие ответы (от Маттиаса Брауна), в которых говорится, что то же самое, что docker-compose down, решит проблему. Он решил проблему и для меня, и для других людей (mac - 10.11.5) (docker - 17.03.1-ce).
Йогеш Ядав
Он упомянул использование, rmа также в комментарии под своим ответом.
Бхаргав Нанекалва
1
Он говорит, что rm заморозил его оболочку и не решает для него проблему.
Йогеш Ядав
1
Это работает лучше, чем docker-compose rm. Спасибо!
varagrawal
19

Проблема была решена для меня, сделав

docker-compose ps

поиск проблемного имени контейнера, а затем (обратите внимание, что dockerздесь)

docker rm <problematic container name>
srt32
источник
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 такой, который будет интерпретирован сборкой. для создания этих образов.

VonC
источник
Спасибо, я нашел основной случай, старый кеш вызывает эту проблему, Thx. Я напишу шаги ниже.
Bensson