To facilitate multi-platform portability, Docker and Arm have built multi-architecture container images with transparent support for the Arm architecture.
These multi-architecture containers abstract away underlying hardware details, allowing you to develop consistently reproducible environments for the Arm architecture. You can use this functionality across various platforms like Windows or Mac laptops, servers in the cloud, and embedded or IoT devices. Another benefit of this functionality is that you can try the Arm architecture with almost no change to the development process.
Multi-architecture containers provide native execution on Arm servers in the cloud and on embedded devices. The same containers can be run and validated on the desktop using instruction translation. For example, you can develop an application with Docker on a desktop machine and then move the application to a server, cloud machine, or embedded device.
In this guide, we will describe how to use multi-architecture containers at each step of the development process. At the end of the guide, you will be able to:
- Install Docker on a local desktop machine
- Create an application in a Docker image
- Push the Docker image to a registry like Docker Hub
- Install Docker on a cloud machine like an AWS A1 instance
- Run the application in the cloud
Both Windows and Mac are supported.
We will also show how to run the same image is run on a Raspberry Pi.
Even though much software deployment happens in the cloud or on an embedded system, developers often prefer to run locally to get started and to fix simple issues. One of the benefits of containers is they can be easily migrated to different types of machines. Docker facilitates these migrations and enables applications to run on the Arm architecture.