> Faqs > Solucionar problema "The requested image's platform does not match..." en Docker

Solucionar problema "The requested image's platform does not match..." en Docker

Estoy haciendo el "docker run" de una imagen que he subido a Docker Hub. Me sale este error:

WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested

El comando de docker que he lanzado es como este:

docker run -d -p 8000:80 --name app user/myimage

¿Alguna idea para solucionarlo?

Respuestas

Eso puede pasarte porque has hecho la imagen de Docker que has subido a Docker Hub con una arquitectura distinta de la que tienes en el servidor.

Por ejemplo, puede pasar si estás usando un Mac con M1 para crear las imágenes que has subido a docker hub y luego quieres desplegar esas imágenes en un servidor con procesodores de arquitectura de Intel.

Si las imágenes de la arquitectura correcta están creadas ya de antemano, se solucionaría simplemente indicando desde el servidor que quieres usar la plataforma necesaria:

docker pull midesweb/mikserver --platform linux/amd64

Sin embargo, no siempre tienes esa plataforma disponible, por lo que al hacer el build necesitas añadir esa plataforma. Para ello se usa un comando de Docker llamado buildx.

Esto lo tienes que ejecutar en el ordenador de origen, donde has creado el build.

docker buildx create --name elbuilder
docker buildx use elbuilder
docker buildx inspect --bootstrap

Con esos comandos has creado y configurado el builder, con buildx.

Ahora puedes crear las plataformas que sean necesarias con este otro comando:

docker buildx build --push --tag usuario/proyecto -o type=image --platform=linux/arm64,linux/amd64 .

Una vez tienes ya el build con la plataforma correcta subido a docker hub, entonces puedes hacer el docker pull con el --platform linux/amd64 en el servidor, para indicar qué plataforma es la que quieres usar para el despliegue.

Santiago
361 11 28 10