Search by Tags

Writing Your First Dockerfile


Your progress



Up to this point, you have been running pre-existing container images from Docker Hub, built by Toradex or other third-party. That is very good and sometimes you will choose to use container images as they are provided.

On the other hand, sometimes you will need to customize a container image with additional libraries, tools, and your application. To fulfill this goal, the Dockerfiles exist.

In this section, you will:

  • Write a Dockerfile.
  • Build a Docker image from the Dockerfile.
  • Upload the image to Docker Hub.
Typographic Conventions


For this Quickstart Guide:

  • Development computer with Windows 10 version 2004 (a.k.a. May 2020 update) or higher.
  • Successfully completed the previous lesson from this guide.

For this lesson:

  • Docker downloaded and running.

Note: Carefully read this module's cover page clicking on "Module 3: Creating my Container" on the left menu bar before starting this lesson.

Step 1

In your development PC, create a new folder named Getting Started on the Desktop

  • Creating a folder

    Creating a folder

Step 2

To create a Dockerfile, open a text editor of your choice. We'll use the NotePad++:

  • Notepad++


Step 3

Copy the following content into NotePad++ blank space:

FROM torizon/arm32v7-debian-base RUN apt update && apt install nano -y

  • Dockerfile content on Notepad++

    Dockerifle content on Notepad++

Note: If you wish, modify the Dockerfile to include more commands, such as RUN apt install python.

In this example, the FROM command shows where to get the base of our Docker image. If you want to cross-build it, make sure to choose a pre-built image for ARM. We also run some commands to install packages from Debian feeds, to test if the cross-build works.

Step 4

After copying the content, we need to save it on our Getting Started folder. Click on the button referred on the image below:

  • Saving the Dockerfile

    Saving the Dockerfile

Make sure to type "Dockerfile" on the file name, this will guarantee it to have no extension.

  • Save the file on the Getting Started folder

    Save the file on the Getting Started folder

Warning: a standard Dockerfile has no extension, therefore make sure your file is not named Dockerfile.txt, especially since file extensions are hidden by default on Windows. Consult this lesson's FAQ for details about naming.

Step 5

Inside the Getting Started folder, hold the left shift key of your keyboard and click on the "Open PowerShell window here" option

  • Open PowerShell window

    Open PowerShell window

From the PowerShell tab you just opened, log in to the Docker CLI:

Note: Remember to keep the Docker Desktop application opened before running these commands

$ docker login

  • Docker login

    Docker login

Follow the prompt with your Docker Hub credentials. Visit Docker Hub page to create a Docker ID if you don't have credentials.

Step 6

Now you can build your image

$ docker build -t <username>/gs-torizon .

Note that this <username> is your Docker Hub username.

Step 7

Upload the image to your Docker Hub:

$ docker push <username>/gs-torizon

Now your custom container image is accessible from Docker Hub just like the other images you've used until this lesson.


What is a Dockerfile?
Can I have multiple Dockerfiles with different names?