To create Docker images with multi architecture support, create your Docker image as usual with a tag for the architecture and push them to the Docker Hub. After all images has been pushed, create a manifest file and push them as :latest image to the Docker Hub.

Create and push manifest file

$ docker manifest create --amend \
    jackgruber/manifest:latest \
    jackgruber/manifest:armhf \
    jackgruber/manifest:amd64

$ docker manifest push jackgruber/manifest:latest

You can inspect a manifest through follow command:

docker manifest inspect jackgruber/manifest

Now the matching version for the architecture is loaded with the docker run jackgruber/manifest command.

Enable experimental mode

At the moment the manifest command is experimental and must be enabled. For enabling this, edit the ~/.docker/config.json and add following option "experimental": "enabled". Enable experimental mode #1

manifest blob unknown

manifest blob unknown #2
If you get follow error, delete the corresponding folder for the manifest in ~/.docker/manifests/ an create the manifest again.