# Prepare Docker image for Arm embedded development

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/docker/)
- [Create Dockerfile and build docker image](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/docker/dockerfile/)
- [Next Steps](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/docker/_next-steps/)

## About this Learning Path

|  |  |
| --- | --- |
| Skill level: | Introductory |
| Reading time: | 30 min |
| Last updated: | 13 Aug 2026 |

### Author:
Ronan Synnott, Arm [LinkedIn](https://linkedin.com/in/ronansynnott)

### Arm IP:
- [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors)
- [Cortex-R](https://support.arm.com/?tab=compute-ip&Product%20Type=Real-Time%20Processors)
- [Cortex-M](https://support.arm.com/?tab=compute-ip&Product%20Type=Microcontrollers)
- [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors)

### Tags:
- [Containers and Virtualization](https://learn.arm.com/tag/containers-and-virtualization)
- [Baremetal](https://learn.arm.com/tag/baremetal)
- [Docker](https://learn.arm.com/tag/docker)
- [Arm Development Studio](https://learn.arm.com/tag/arm-development-studio)
- [Arm Compiler for Embedded](https://learn.arm.com/tag/arm-compiler-for-embedded)
- [Arm Fast Models](https://learn.arm.com/tag/arm-fast-models)

### Who is this for?
This is an introductory topic for embedded software developers new to Docker.

### What will you learn?
After completing this Learning Path, you'll be able to perform the following tasks:
- Create and understand a Dockerfile
- Build Docker image
- Test the image

### Prerequisites
Before starting, you'll need the following prerequisites:

### Summary
You’ll create a containerized Arm embedded development environment with Docker. First, you’ll prepare an Ubuntu-based Dockerfile containing Arm Compiler for Embedded and Fixed Virtual Platforms (FVPs). Then, you’ll build the image and verify that the tools launch. You’ll finish with a reusable environment for compiling Arm applications and running targets on FVPs without installing tools directly on the host.

### Frequently asked questions

**Which base operating system should the Dockerfile use?**
Use Ubuntu as the base for the Docker image. The host can be Windows or a different Linux distribution.

**Do I need to use sudo for Docker commands on Linux?**
Many Linux setups require `sudo` because the Docker daemon runs as root. If you see a permission error, prepend `sudo` to the Docker command.

**What files do I need to copy into the image before building?**
Copy the installation packages you downloaded for Arm Compiler for Embedded and the FVPs. Make sure the Dockerfile `COPY` paths match where those files are located.

**How do I know the image is ready to use?**
Start a container from the image and run the compiler and FVP executables. Confirm each executable launches and reports version information. If both start without errors, your environment is set up correctly.

**Can I follow these steps on a Windows host?**
Yes. The container runs Ubuntu, and the host can be Windows or Linux. Install the appropriate Docker edition for your platform before starting.
