Docker Community Forums

Share and learn in the Docker community.

How do I choose the target platform for the image?


(Agronholm) #1

With the experimental features turned on, I should be able to select the platform for a multiarch image using the --platform switch. Docker, however, rejects any and all values I try to give it:

$ docker run --rm -it --platform linux/amd64 python:3.6.4-stretch bash
docker: Error response from daemon: invalid platform: invalid platform architecture “amd64”
$ docker run --rm -it --platform linux/arm/v7 python:3.6.4-stretch bash
docker: Error response from daemon: invalid platform: invalid platform architecture “arm”.
$ docker version
Client:
Version: 17.12.0-ce
API version: 1.35
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:12:17 2017
OS/Arch: linux/amd64

Server:
Engine:
Version: 17.12.0-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.9.2
Git commit: c97c6d6
Built: Wed Dec 27 20:14:50 2017
OS/Arch: linux/amd64
Experimental: true

If amd64 and arm are not valid platform names, what are???
This is on Docker 17.12.1.


(Agronholm) #2

It appears that architecture selection has been hard coded to not work in the current codebase, apparently due to issues with an older version of containerd. It’s not clear whether this is still the case now that containerd has been updated.