How to get ARM Docker images when creating devcontainer is VS Code? (mac m1) How to get ARM Docker images when creating devcontainer is VS Code? (mac m1) docker docker

How to get ARM Docker images when creating devcontainer is VS Code? (mac m1)


If you need the specific MCR containers, you will need to wait for them to be available for arm64.

However, if you do not need the specific image, you have ample amount of Docker images that are build for arm64 and can be found in the Docker HUB. You can search for arm64v8 or search for the image and check if the arm64 tag is displayed

In both cases, you can try to pull any image for linux/arm64 platform architecture as follows:

docker pull --platform linux/arm64 image

Final option is for you to build your own image. This can be a time consuming since you might face the need to port some of the libraries to arm64v8.


Update, there are now many to choose from:https://github.com/microsoft/vscode-dev-containers/issues/558#issuecomment-910369599

This wont age well, but I don't want to post an answer with nothing. As of 9/9/21:

Base imagesmcr.microsoft.com/vscode/devcontainers/base:dev-bullseye (Debian 11) - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/base:dev-stretch (Debian 9) - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/base:dev-hirsute (Ubuntu 21.04) - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/base:dev-bionic (Ubuntu 18.04) - Released in v0.194.2Nodemcr.microsoft.com/vscode/devcontainers/javascript-node:dev-16-bullseye - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/javascript-node:dev-14-bullseye - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/javascript-node:dev-12-bullseye - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/typescript-node:dev-16-bullseye - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/typescript-node:dev-14-bullseye - Released in v0.194.2mcr.microsoft.com/vscode/devcontainers/typescript-node:dev-12-bullseye - Released in v0.194.2Pythonmcr.microsoft.com/vscode/devcontainers/python:dev-3-bullseyemcr.microsoft.com/vscode/devcontainers/python:dev-3.9-bullseyemcr.microsoft.com/vscode/devcontainers/python:dev-3.8-bullseyemcr.microsoft.com/vscode/devcontainers/python:dev-3.7-bullseyemcr.microsoft.com/vscode/devcontainers/python:dev-3.6-bullseyePHPmcr.microsoft.com/vscode/devcontainers/php:dev-8-bullseyemcr.microsoft.com/vscode/devcontainers/php:dev-8.0-bullseyemcr.microsoft.com/vscode/devcontainers/php:dev-7-bullseyemcr.microsoft.com/vscode/devcontainers/php:dev-7.4-bullseyemcr.microsoft.com/vscode/devcontainers/php:dev-7.3-bullseyeGomcr.microsoft.com/vscode/devcontainers/go:dev-1-bullseyemcr.microsoft.com/vscode/devcontainers/go:dev-1.17-bullseyemcr.microsoft.com/vscode/devcontainers/go:dev-1.16-bullseyeRubymcr.microsoft.com/vscode/devcontainers/go:dev-1-bullseyemcr.microsoft.com/vscode/devcontainers/go:dev-1.17-bullseyemcr.microsoft.com/vscode/devcontainers/go:dev-1.16-bullseyeRuby, Jekyllmcr.microsoft.com/vscode/devcontainers/ruby:dev-3.0-bullseyemcr.microsoft.com/vscode/devcontainers/ruby:dev-2.7-bullseyemcr.microsoft.com/vscode/devcontainers/ruby:dev-2.6-bullseyemcr.microsoft.com/vscode/devcontainers/jekyll:dev-bullseye


Following jordanvrtanoski answer,

I decided to use official Docker images that are natively compatible with arm64.In the between, I realized MCR images have nothing crazy or impossible to reproduce. They provide base templates they use for their images here

As I use root user in my containers, and don't need many additional binaries, the only thing I picked from these MCR images is the customization of bashrc file, to have custom prompt, colors on ls cmd, and aliases.

Everything works as expected, and it's cleaner since each line of my Dockerfile is now known, and useful to me.