J'utilise Docker sous Windows, et quand j'ai essayé de tirer une image PHP avec cette commande
$ docker pull php
J'ai reçu ce message:
Using default tag: latest
latest: Pulling from library/php no matching manifest for windows/amd64
in the manifest list entries
Comment puis-je résoudre ce problème?
Réponses:
J'ai eu ce même problème sous Windows 10. Je l'ai contourné en exécutant le démon Docker en mode expérimental:
"experimental": true
la source
--experimental
fonctionnalité d' utilisation binaire autonomeIl peut y avoir plusieurs raisons à cette erreur. Mais la raison la plus évidente de cette erreur est l'utilisation du conteneur Windows en mode conteneur Linux ou vice versa.
la source
Vous êtes en mode conteneur Windows. Donc, si vous n'êtes pas sûr que l'image que vous souhaitez extraire soit conçue pour l'architecture Windows , vous devez passer aux conteneurs Linux.
la source
Une autre façon possible de faire ceci:
Dans la barre d'état système, faites un clic droit sur l'icône du docker, puis cliquez sur
Switch to Linux containers
.(Docker pour Windows, Community Edition, version 18.03.1)
la source
Dans mon cas, c'était que la version du système d'exploitation Windows sur laquelle j'étais ne supportait pas la balise que j'essayais d'extraire. L'utilisation d'une ancienne balise m'a permis de faire fonctionner cela.
Plus précisément:
docker pull mcr.microsoft.com/windows/nanoserver:1903
erronédocker pull mcr.microsoft.com/windows/nanoserver:1803-amd64
travailléla source
Version: Windows 10
Étape 1: Faites un clic droit sur l'instance Docker et accédez aux paramètres
Étape 2: De base à avancé et définition de "expérimental": true
Étape 3: Redémarrez Docker
Étape 4: L'installation du fichier dockerfile est réussie (ex: docker build -t williehao / cheers2019.)
la source
Vous devez d'abord tirer avec la plate-forme Linux, puis vous pouvez exécuter sur Windows:
Voir l'article de blog Docker pour Windows Desktop 18.02 avec Windows 10 Fall Creators Update .
la source
--platform
drapeau fonctionne aussi. Bien qu'il puisse retélécharger des choses.J'ai résolu cela dans Windows 10 en exécutant dans admin Powershell:
Puis:
la source
Considérez les applications que vous tirez - sont-elles basées sur Windows? Sinon, vous devez exécuter un conteneur Linux.
Sans utiliser le mode expérimental, vous ne pouvez utiliser Docker que dans un style de conteneur par rapport à l'autre. Si vous activez le mode expérimental comme mentionné ci-dessus, vous pouvez utiliser les conteneurs Windows et Linux comme requis par les applications que vous extrayez dans le fichier de composition.
Note clé: expérimental - toujours en développement par Docker.
la source
Cela peut ne pas se produire uniquement à cause des conteneurs Windows!
Aujourd'hui, toutes les images du docker Node.Js ne peuvent pas être extraites. Vérifiez toujours l'image que vous essayez de tirer avant.
Problème Github associé
la source
Cela ressemble à un échec de "l'extraction de docker" dans Windows 10 # 1100
Si l'ajout
--experimental
ne fonctionne pas, envisagez de réinstaller Docker pour Windows .la source
experimental
œuvres, merci ... Pourquoi en est-il ainsi?J'obtenais cette erreur dans mon pipeline Azure DevOps.
Le problème était que j'avais sélectionné Hosted VS2017 au lieu de Hosted Ubuntu . Après avoir changé la même chose comme suit, la génération a réussi.
J'espère que ça aide.
la source
docker exécuter mcr.microsoft.com/windows/servercore:ltsc2016
essayez la commande ci-dessus. ce que vous tirez doit être compatible avec la version de Windows sous-jacente dans laquelle vous vous trouvez. ci-dessus fonctionnera si vous êtes dans Windows Server 2016.
suivez ce fil pour plus d'informations
https://github.com/docker/for-win/issues/3761
la source
Faites un clic droit sur l'instance Docker Allez dans Paramètres Daemon Avancé Définissez le paramètre "expérimental": true Redémarrez Docker
la source
Abandon de la balise "la plus récente"
Nous abandonnons la balise «la plus récente» dans toutes nos images de base Windows pour encourager de meilleures pratiques de conteneur. Au début de l'année civile 2019, nous ne publierons plus le tag ; Nous allons le retirer de la liste des balises disponibles.
Nous vous encourageons vivement à plutôt déclarer la balise conteneur spécifique que vous souhaitez exécuter en production. La balise «dernière» est l'opposé de spécifique; il ne dit rien à l'utilisateur sur la version du conteneur en dehors du nom de l'image. Vous pouvez en savoir plus sur la compatibilité des versions et la sélection de la balise appropriée dans nos documents sur les conteneurs .
https://techcommunity.microsoft.com/t5/containers/windows-server-2019-now-available/ba-p/382430#
la source
J'ai eu le même problème pour exécuter l'image Windows IIS à l'aide de docker pour Windows. En lisant la réponse de Mohammad Trabelsi ci-dessus, j'ai réalisé que pour résoudre mon problème, je devais changer mes conteneurs (sur docker) pour des conteneurs Windows.
Pour faire ça:
la source
Sous Windows, vous devez éditer le fichier daemon.json ou windows-daemon-options.json, l'emplacement par défaut du fichier de configuration sous Windows est% programdata% \ docker \ config \ daemon.json ou% programdata% \ docker \ resources \ windows -daemon-options.json
Les fonctionnalités de champ facultatives du fichier json permettent aux utilisateurs d'activer ou de désactiver des fonctionnalités de démon spécifiques. Exemple: {"features": {"buildkit": true}} active le buildkit en tant que générateur d'image Docker par défaut.
la source
La raison pour laquelle il affiche ce message parce qu'il ne parvient pas à trouver les conteneurs Linux en cours d'exécution. Alors, assurez-vous de passer de Windows aux conteneurs Linux avant de l'exécuter.
la source
Pour moi, c'est à cause de l'accès refusé à C: \ ProgramData \ Docker \ config \ daemon.json Après avoir corrigé cela, cela fonctionne. Vous pouvez essayer de basculer vers des conteneurs Linux et revenir en arrière. S'il n'y a pas de problème avec la commutation, cela fonctionne avec l'autorisation d'accès.
la source
Dans mon cas, j'ai d'abord dû mettre à jour Windows , après quoi le problème a disparu.
la source