Uso Docker en Windows, y cuando intenté extraer una imagen PHP con este comando
$ docker pull php
Recibí este mensaje:
Using default tag: latest
latest: Pulling from library/php no matching manifest for windows/amd64
in the manifest list entries
¿Como puedo solucionar este problema?
Respuestas:
Tuve este mismo problema en Windows 10. Lo evité ejecutando el demonio Docker en modo experimental:
"experimental": true
fuente
--experimental
función de uso binario independientePodría haber muchas razones para este error. Pero la razón más obvia para este error es usar el Contenedor de Windows en el Modo Contenedor de Linux o viceversa.
fuente
Estás en modo contenedor de Windows. Por lo tanto, si no está seguro de que la imagen que desea extraer está construida para la arquitectura de Windows , debe cambiar a contenedores Linux.
fuente
Otra posible forma de hacer esto:
En la bandeja del sistema, haga clic derecho en el icono de la ventana acoplable, luego haga clic en
Switch to Linux containers
.(Docker para Windows, Community Edition, versión 18.03.1)
fuente
En mi caso, era que la versión del sistema operativo Windows en la que estaba no era compatible con la etiqueta que estaba tratando de extraer. El uso de una etiqueta anterior me permitió hacer que esto funcionara.
Específicamente:
docker pull mcr.microsoft.com/windows/nanoserver:1903
erradodocker pull mcr.microsoft.com/windows/nanoserver:1803-amd64
trabajófuente
Versión: Windows 10
Paso 1: haga clic con el botón derecho en la instancia de Docker y vaya a Configuración
Paso 2: Básico a Avanzado y establecer el "experimental": verdadero
Paso 3: reinicia Docker
Paso 4: la instalación de dockerfile se realizó correctamente (por ejemplo, docker build -t williehao / cheers2019).
fuente
Primero debe usar la plataforma Linux, luego puede ejecutar en Windows:
Consulte la publicación de blog Docker para Windows Desktop 18.02 con Windows 10 Fall Creators Update .
fuente
--platform
bandera también funciona. Aunque puede volver a descargar cosas.Resolví esto en Windows 10 ejecutando en admin Powershell:
Y entonces:
fuente
Considere las aplicaciones que está utilizando: ¿están basadas en Windows? Si no, necesita ejecutar un contenedor de Linux.
Sin usar el modo experimental, solo puede usar Docker en un estilo de contenedor frente al otro. Si activa el modo experimental como se mencionó anteriormente, puede usar contenedores de Windows y Linux según lo requieran las aplicaciones que está extrayendo en el archivo de redacción.
Nota clave: Experimental, todavía en desarrollo por Docker.
fuente
¡Esto puede no solo suceder debido a los contenedores de Windows!
Hoy en día, todas las imágenes del acoplador de Node.Js no son extraíbles. Siempre verifique la imagen que está intentando obtener antes.
Github-Issue relacionado
fuente
Esto parece que "docker pull" falla en Windows 10 # 1100
Si agregar
--experimental
no funciona, considere reinstalar la ventana acoplable para Windows .fuente
experimental
obras, gracias ... ¿Por qué es así?Recibía este error en mi canalización de Azure DevOps.
El problema era que había seleccionado el Hosted VS2017 en lugar del Hosted Ubuntu . Después de cambiar lo mismo de la siguiente manera, la compilación fue exitosa.
Espero eso ayude.
fuente
Docker ejecute mcr.microsoft.com/windows/servercore:ltsc2016
Pruebe el comando anterior. lo que está tirando debe ser compatible con la versión subyacente de Windows en la que se encuentra. Lo anterior funcionará si está en Windows Server 2016.
sigue este hilo para más información
https://github.com/docker/for-win/issues/3761
fuente
Haga clic con el botón derecho en la instancia de Docker. Vaya a Configuración Daemon Advanced. Configure "experimental": verdadero. Reinicie Docker.
fuente
Despreciando la etiqueta 'más reciente'
Estamos desaprobando la etiqueta 'más reciente' en todas nuestras imágenes base de Windows para fomentar mejores prácticas de contenedor. Al comienzo del año calendario 2019, ya no publicaremos la etiqueta ; Lo sacaremos de la lista de etiquetas disponibles.
Estamos firmemente animamos a que declare en su lugar la etiqueta de contenedor específico desea ejecutar en la producción. La etiqueta 'más reciente' es lo opuesto a específica; no le dice nada al usuario sobre qué versión es el contenedor realmente aparte del nombre de la imagen. Puede leer más sobre la compatibilidad de versiones y seleccionar la etiqueta adecuada en nuestros documentos de contenedor .
https://techcommunity.microsoft.com/t5/containers/windows-server-2019-now-available/ba-p/382430#
fuente
Tuve el mismo problema para ejecutar la imagen de Windows IIS con Docker para Windows. Al leer la respuesta de Mohammad Trabelsi anterior, me di cuenta de que para resolver mi problema necesitaba cambiar mis contenedores (en la ventana acoplable) por contenedores de Windows.
Para hacer esto:
fuente
En Windows debe editar el archivo daemon.json o windows-daemon-options.json, la ubicación predeterminada del archivo de configuración en Windows es% programdata% \ docker \ config \ daemon.json o% programdata% \ docker \ resources \ windows -daemon-options.json
Las características de campo opcionales en el archivo json permiten a los usuarios habilitar o deshabilitar características específicas del demonio. Ejemplo: {"features": {"buildkit": true}} habilita buildkit como el generador de imágenes de acoplador predeterminado.
fuente
La razón por la que muestra este mensaje es porque no puede encontrar contenedores de Linux como en ejecución. Por lo tanto, asegúrese de cambiar de Windows a contenedores de Linux antes de ejecutarlo.
fuente
Para mí, es debido al acceso denegado a C: \ ProgramData \ Docker \ config \ daemon.json Después de que lo arreglé ahora funciona. Puede intentar cambiar a contenedores Linux y volver a cambiar. Si no hay ningún problema con el cambio, entonces funciona con el permiso de acceso.
fuente
En mi caso , primero tuve que actualizar Windows , después de eso el problema desapareció.
fuente