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"

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.


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.


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

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>

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>

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.


Merci, j'ai trouvé le cas racine, l'ancien cache cause ce problème, Thx. J'écrirai les étapes ci-dessous.
Bensson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.