Docker Compose: no existe tal imagen

122

Cuando corro docker-compose up, aparece este error:

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
fuente

Respuestas:

243

El caché antiguo causó este problema, no pude ejecutar este comando la primera vez y docker-compongo imágenes ya creadas que no puedo ver docker images.

Necesita verificar docker-compose psy eliminar todas las imágenes antiguas con este comando docker-compose rm, luego reconstruir nuevamente.

Bensson
fuente
2
Mire también la respuesta de Shiva. Me pregunto por qué tomó casi un año mejorar este. ¡Vamos, ASÍ!
Adam
2
stackoverflow.com/a/43381147/8283848 esto hará la magia perfectamente (para mí)
JPG
Podría ser bueno mencionar que docker-compose rm no tiene el siguiente ID de parámetro de la imagen, a diferencia del caso con docker rmi #id. De lo contrario, no podría eliminar un nombre existente de una imagen de composición acoplable que se salió y se borró a través dedocker rmi 2d0c8d6058f4_myprojectcom_app_1
FantomX1
125

Encontré este error al usar Docker Machine en Windows.

Un contenedor parece haberse vuelto loco; docker-compose rm --allcausó que todo el shell se congelara y reiniciar Docker Machine tampoco ayudó, el contenedor aún aparecía al hacerlo docker-compose ps.

La solución fue ejecutar docker-compose down.

Matthias Braun
fuente
una mejor manera es eliminar solo las imágenes defectuosas docker-compose rm webb webc webay luego extraer o construir una nueva
OzzyCzech
1
@OzzyCzech Estoy seguro de que fue útil en tu situación. Pero en la mía se docker-compose rmcongeló mi caparazón.
Matthias Braun
No tuve problemas de congelación pero docker-compose rm --allno quitaba todas las imágenes. docker-compose down solucionó el problema. (Ubuntu 16)
Raheel
Gracias @MatthiasBraun. Me funcionó en ubuntu 17.10
Raj Kumar N
45

Para solucionar este problema

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

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

Para ver todas las imágenes

docker images -a
Yogesh Yadav
fuente
1
El problema es que faltan imágenes y, como tal, los comandos upy downno funcionan. La respuesta correcta es usar docker-compose rmpara borrar imágenes y build-> upnuevamente.
Bhargav Nanekalva,
2
Bhargav Señor, debe investigar más antes de rechazar una respuesta, especialmente si no tiene suficiente experiencia con esa tecnología. O al menos puede ver las respuestas anteriores (por Matthias Braun) que dice lo mismo que docker-compose down resolverá el problema. También me ha resuelto el problema junto con otras personas (mac - 10.11.5) (docker - 17.03.1-ce).
Yogesh Yadav
Mencionó el uso rmy también en un comentario debajo de su respuesta.
Bhargav Nanekalva
1
Dice que rm congeló su caparazón y no resuelve el problema por él.
Yogesh Yadav
1
Esto funciona mejor que docker-compose rm. ¡Gracias!
varagrawal
19

El problema se resolvió para mí haciendo

docker-compose ps

encontrar el nombre del contenedor problemático y luego (nota que se ejecuta dockeraquí)

docker rm <problematic container name>
srt32
fuente
2

En Ubuntu 18.04.4 y Docker versión 19.03.6

Probé la respuesta de Yogesh Yadav, pero

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

El comando congeló mi terminal al ejecutar 'bloqueos actuales'.

Pude resolverlo enumerando los contenedores:

$ docker-compose ps

Y eliminando los contenedores problemáticos uno por uno, ejecutando:

$ docker rm <name_of_the_problematic_container>
Nisal Gunawardana
fuente
0

Los ejemplos que utilizan weba, webb y webc como " Cómo utilizar Docker Compose para ejecutar aplicaciones complejas de varios contenedores en su Raspberry Pi " suponen que está creando esas imágenes.

weba:
  build: .
  expose:
    - 80

Lo que significa que tiene (en /home/benson/Docker/HaproxyMy) uno Dockerfile como este que será interpretado por la compilación. para construir esas imágenes.

VonC
fuente
Gracias, encontré el caso raíz, el caché antiguo causa este problema, Thx. Escribiré los pasos a continuación.
Bensson