Docker Compose: Nenhuma imagem

122

Quando executo docker-compose up, recebo este erro:

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
fonte

Respostas:

243

O cache antigo causou esse problema. Falha ao executar este comando pela primeira vez e o docker-compor já criou imagens das quais não consigo ver docker images.

É necessário verificar docker-compose pse remover todas as imagens antigas com este comando e docker-compose rm, em seguida, reconstruir novamente.

Bensson
fonte
2
Veja também a resposta de Shiva. Pergunto-me por que demorou quase um ano para melhorar este? Vamos lá!
Adam
2
stackoverflow.com/a/43381147/8283848 isso vai fazer a mágica perfeitamente (para mim)
JPG
pode ser bom mencionar que o docker-compose rm não possui o seguinte ID de parâmetro da imagem, diferente do caso do docker rmi #id. Caso contrário, eu não poderia remover um nome existente de uma imagem de composição do docker que foi encerrada e apagada viadocker rmi 2d0c8d6058f4_myprojectcom_app_1
FantomX1
125

Encontrei este erro ao usar o Docker Machine no Windows.

Um contêiner parece ter sido desonesto; docker-compose rm --allcausou o congelamento de todo o shell e a reinicialização do Docker Machine também não ajudou, o contêiner ainda aparecia docker-compose ps.

A solução foi executar docker-compose down.

Matthias Braun
fonte
melhor maneira é remover apenas imagens falhando com docker-compose rm webb webc webae puxe ou construir novo
OzzyCzech
1
@OzzyCzech Tenho certeza de que foi útil na sua situação. Mas no meu docker-compose rmcongelou minha concha.
Matthias Braun
Não tive problema de congelamento, mas docker-compose rm --allnão estava removendo todas as imagens. docker-compose down corrigiu o problema. (Ubuntu 16)
Raheel
Obrigado @MatthiasBraun. Funcionou para mim no ubuntu 17.10
Raj Kumar N
45

Para resolver este problema

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

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

Para ver todas as imagens

docker images -a
Yogesh Yadav
fonte
1
O problema é com imagens ausentes e, como tal, upe os downcomandos não funcionam. A resposta correta é usar docker-compose rmpara limpar imagens e build-> upnovamente.
Bhargav Nanekalva
2
Bhargav Senhor, você precisa fazer mais pesquisas antes de votar uma resposta especialmente se você não tiver experiência suficiente com essa tecnologia. Ou, pelo menos, você pode ver respostas anteriores (de Matthias Braun), que estão dizendo a mesma coisa que a composição do docker resolverá o problema. Ele também resolveu o problema junto com outras pessoas (mac - 10.11.5) (janela de encaixe - 17.03.1-ce).
Yogesh Yadav
Ele mencionou o uso rme também em um comentário sob sua resposta.
Bhargav Nanekalva
1
Ele está dizendo que a empresa congelou sua concha e não resolve o problema para ele.
Yogesh Yadav
1
Isso funciona melhor que docker-compose rm. Obrigado!
varagrawal
19

Problema foi resolvido para mim fazendo

docker-compose ps

localizando o nome do contêiner problemático e, em seguida (observe executando dockeraqui)

docker rm <problematic container name>
srt32
fonte
2

No Ubuntu 18.04.4 e Docker versão 19.03.6

Eu tentei a resposta de Yogesh Yadav, mas

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

O comando congelou meu terminal ao executar 'bloqueios atuais'.

Consegui resolvê-lo listando os contêineres:

$ docker-compose ps

E removendo os contêineres problemáticos, um por um, executando:

$ docker rm <name_of_the_problematic_container>
Nisal Gunawardana
fonte
0

Exemplos usando weba, webb e webc como " Como usar o Docker Compose para executar aplicativos complexos de vários contêineres no seu Raspberry Pi " suponha que você esteja criando essas imagens.

weba:
  build: .
  expose:
    - 80

Ou seja, você tem (em /home/benson/Docker/HaproxyMy) um Dockerfile como este que será interpretada pela construção. para construir essas imagens.

VonC
fonte
Obrigado, encontrei o caso raiz. O cache antigo causa esse problema, Thx. Vou escrever os passos abaixo.
Bensson 26/05