Eu uso o Docker no Windows e quando tentei extrair uma imagem PHP com este comando
$ docker pull php
Eu recebi esta mensagem:
Using default tag: latest
latest: Pulling from library/php no matching manifest for windows/amd64
in the manifest list entries
Como posso resolver este problema?
Respostas:
Eu tive esse mesmo problema no Windows 10. Eu o ignorei executando o daemon do Docker no modo experimental:
"experimental": true
fonte
--experimental
recursoPode haver muitos motivos para esse erro. Mas a razão mais óbvia para esse erro é usar o Windows Container no Linux Container Mode ou vice-versa.
fonte
Você está no modo de contêiner do Windows. Portanto, se você não tiver certeza de que a imagem que deseja extrair foi criada para a arquitetura do Windows , precisará mudar para os contêineres do Linux.
fonte
Outra maneira possível de fazer isso:
Na bandeja do sistema, clique com o botão direito do mouse no ícone do docker e clique em
Switch to Linux containers
.(Docker para Windows, Community Edition, versão 18.03.1)
fonte
No meu caso, a versão do sistema operacional Windows em que eu estava não suportava a tag que eu estava tentando usar. A utilização de uma tag mais antiga permitiu que eu funcionasse.
Especificamente:
docker pull mcr.microsoft.com/windows/nanoserver:1903
com errodocker pull mcr.microsoft.com/windows/nanoserver:1803-amd64
trabalhoufonte
Versão: Windows 10
Etapa 1: Clique com o botão direito do mouse na instância do Docker e vá para Configurações
Etapa 2: Básico a Avançado e definindo o "experimental": true
Etapa 3: reiniciar o Docker
Etapa 4: instalar o dockerfile com êxito (ex: docker build -t williehao / cheers2019.)
fonte
Você precisa usar a plataforma Linux primeiro e executar no Windows:
Consulte a publicação no blog Docker para Windows Desktop 18.02 com a Atualização de criadores de queda do Windows 10 .
fonte
--platform
bandeira também funciona. Embora possa baixar novamente o material.Resolvi isso no Windows 10 executando o admin Powershell:
E depois:
fonte
Considere os aplicativos que você está puxando - eles são baseados no Windows? Caso contrário, você precisará executar um contêiner Linux.
Sem usar o modo experimental, você pode usar o Docker apenas em um estilo de contêiner versus o outro. Se você ativar o modo experimental, conforme mencionado acima, poderá usar contêineres Windows e Linux conforme exigido pelos aplicativos que você está puxando no arquivo de composição.
Nota-chave: Experimental - ainda em desenvolvimento pela Docker.
fonte
Isso pode não só acontecer devido aos contêineres do Windows!
Hoje, todas as imagens do Docker do Node.Js não podem ser extraídas. Sempre verifique a imagem que você está tentando extrair antes.
Problema no Github relacionado
fonte
Parece que "docker pull" falha no windows 10 # 1100
Se a adição
--experimental
não funcionar, considere reinstalar o docker para Windows .fonte
experimental
obras, obrigado ... Por que é isso?Eu estava recebendo esse erro no pipeline do Azure DevOps.
O problema foi que eu havia selecionado o VS2017 hospedado em vez do Ubuntu hospedado . Depois de alterar o mesmo a seguir, a compilação foi bem-sucedida.
Espero que ajude.
fonte
docker execute mcr.microsoft.com/windows/servercore:ltsc2016
tente o comando acima. o que você está puxando deve ser compatível com a versão subjacente do Windows em que você está. acima funcionará se você estiver no Windows Server 2016.
siga este tópico para mais informações
https://github.com/docker/for-win/issues/3761
fonte
Clique com o botão direito do mouse na instância do Docker Vá para Configurações Daemon Avançado Defina "experimental": true Reinicie o Docker
fonte
Descontinuando a tag 'latest'
Estamos descontinuando a tag 'latest' em todas as nossas imagens de base do Windows para incentivar melhores práticas de contêiner. No início do ano civil de 2019, não publicaremos mais a tag ; Arrancaremos da lista de tags disponíveis.
Nós fortemente encorajamos você a vez declarar a tag recipiente específico que você gostaria de correr na produção. A tag 'latest' é o oposto de specific; não informa ao usuário nada sobre qual versão o contêiner realmente está separado do nome da imagem. Você pode ler mais sobre compatibilidade de versão e selecionar a tag apropriada em nossos documentos de contêiner .
https://techcommunity.microsoft.com/t5/containers/windows-server-2019-now-available/ba-p/382430#
fonte
Eu tive o mesmo problema para executar a imagem do Windows IIS usando o docker para Windows. Lendo a resposta de Mohammad Trabelsi acima, percebi que, para resolver meu problema, precisava trocar meus contêineres (na janela de encaixe) pelos contêineres do Windows.
Para fazer isso:
fonte
No Windows, você deve editar o arquivo daemon.json ou windows-daemon-options.json, o local padrão do arquivo de configuração no Windows é% programdata% \ docker \ config \ daemon.json ou% programdata% \ docker \ resources \ windows -daemon-options.json
Os recursos de campo opcionais no arquivo json permitem que os usuários ativem ou desativem recursos específicos do daemon. Exemplo: {"features": {"buildkit": true}} ativa o buildkit como o construtor de imagens do docker padrão.
fonte
O motivo pelo qual está mostrando esta mensagem porque não é possível encontrar os contêineres Linux em execução. Portanto, certifique-se de alternar do Windows para o Linux antes de executá-lo.
fonte
Para mim, é por causa do acesso negado a C: \ ProgramData \ Docker \ config \ daemon.json Depois de corrigi-lo agora, ele funciona. Você pode tentar mudar para contêineres Linux e voltar. Se não houver nenhum problema com a alternância, ele funcionará com a permissão de acesso.
fonte
No meu caso, eu tive que atualizar o Windows primeiro, depois que o problema desapareceu.
fonte