Docker Compose: aucune image de ce type

122

Quand je cours docker-compose up, j'obtiens cette erreur:

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
la source

Réponses:

243

L'ancien cache a causé ce problème, je n'ai pas réussi à exécuter cette commande la première fois et docker-compose a déjà créé des images dont je ne peux pas voir docker images.

Vous devez vérifier docker-compose pset supprimer toutes les anciennes images avec cette commande docker-compose rm, puis reconstruire à nouveau.

Bensson
la source
2
Regardez aussi la réponse de Shiva. Vous vous demandez pourquoi il a fallu près d'un an pour améliorer celui-ci? Allez, alors!
Adam
2
stackoverflow.com/a/43381147/8283848 cela fera parfaitement la magie (pour moi)
JPG
il serait peut-être bon de mentionner que docker-compose rm est sans id de paramètre suivant de l'image, contrairement au cas avec docker rmi #id. Sinon, je ne pourrais pas supprimer un nom existant d'une image docker-compose qui a été quittée et effacée viadocker rmi 2d0c8d6058f4_myprojectcom_app_1
FantomX1
125

J'ai rencontré cette erreur lors de l'utilisation de Docker Machine sous Windows.

Un conteneur semble être devenu un voyou; docker-compose rm --alla provoqué le gel de tout le shell et le redémarrage de Docker Machine n'a pas aidé non plus, le conteneur est toujours apparu lors de l'opération docker-compose ps.

La solution était d'exécuter docker-compose down.

Matthias Braun
la source
le meilleur moyen est de supprimer uniquement les images défaillantes avec docker-compose rm webb webc weba, puis de les extraire ou d'en créer une nouvelle
OzzyCzech
1
@OzzyCzech Je suis sûr que cela a été utile dans votre situation. Mais dans le mien a docker-compose rmgelé ma coquille.
Matthias Braun
Je n'ai pas eu de problème de gel mais je ne docker-compose rm --allsupprimais pas toutes les images. docker-compose down a résolu le problème. (Ubuntu 16)
Raheel
Merci @MatthiasBraun. Cela a fonctionné pour moi sur ubuntu 17.10
Raj Kumar N
45

Pour résoudre ce problème

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

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

Pour voir toutes les images

docker images -a
Yogesh Yadav
la source
1
Le problème est lié aux images manquantes et, en tant que telles up, les downcommandes ne fonctionnent pas. La bonne réponse est d'utiliser docker-compose rmpour effacer les images et build-> à upnouveau.
Bhargav Nanekalva
2
Bhargav Monsieur, Vous devez faire plus de recherches avant de voter contre une réponse, surtout si vous n'avez pas assez d'expérience avec cette technologie. Ou vous pouvez au moins voir les réponses précédentes (par Matthias Braun) qui disent la même chose que docker-compose down résoudra le problème. Cela a également résolu le problème pour moi avec d'autres personnes (mac - 10.11.5) (docker - 17.03.1-ce).
Yogesh Yadav
Il a mentionné l'utilisation rmet aussi dans un commentaire sous sa réponse.
Bhargav Nanekalva
1
Il dit que rm a gelé sa coquille et ne résout pas le problème pour lui.
Yogesh Yadav
1
Cela fonctionne mieux que docker-compose rm. Je vous remercie!
varagrawal
19

Le problème a été résolu pour moi en faisant

docker-compose ps

trouver le nom du conteneur problématique, puis (note en cours d'exécution dockerici)

docker rm <problematic container name>
srt32
la source
2

Sur Ubuntu 18.04.4 et Docker version 19.03.6

J'ai essayé la réponse de Yogesh Yadav, mais

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

La commande a gelé mon terminal lors de l'exécution des «verrous actuels».

J'ai pu le résoudre en listant les conteneurs:

$ docker-compose ps

Et en supprimant les conteneurs problématiques un par un, en exécutant:

$ docker rm <name_of_the_problematic_container>
Nisal Gunawardana
la source
0

Les exemples utilisant weba, webb et webc comme « Comment utiliser Docker Compose pour exécuter des applications complexes multi-conteneurs sur votre Raspberry Pi » supposent que vous construisez ces images.

weba:
  build: .
  expose:
    - 80

Cela signifie que vous avez (dans /home/benson/Docker/HaproxyMy) un Dockerfile comme celui-ci qui sera interprété par la construction. pour construire ces images.

VonC
la source
Merci, j'ai trouvé le cas racine, l'ancien cache cause ce problème, Thx. J'écrirai les étapes ci-dessous.
Bensson