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 own application. To fulfill this goal, the Dockerfiles exist.
In this section, you will:
For this Quickstart Guide:
For this lesson:
Note: Carefully read this module's cover page clicking on "Module 3: Creating my Own Container" on the left menu bar before starting this lesson.
In your Linux machine, create a new folder named quickstart on the Desktop and a new file called
Dockerfile inside it.
$ mkdir ~/quickstart $ touch ~/quickstart/Dockerfile
Copy the following content into the newly created file:
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. Consult this lesson's FAQ for details about naming.
FROM --platform=linux/arm64 torizon/debian:2-bullseye RUN apt update && apt install nano -y
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. It is important to set the platform correctly, otherwise when you deploy it to the board, the container may not work or malfunction. We also run some commands to install packages from Debian feeds, to test if the build really works.
From the command-line, in your development PC, login to the Docker CLI:
$ 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.
Enter the previously created quickstart folder and build the image:
$ cd ~/quickstart $ docker build --pull -t <username>/qs-torizon .
Note that this
<username> is your Docker Hub username.
Upload the image to your Docker Hub:
$ docker push <username>/qs-torizon
Now your custom container image is accessible from Docker Hub just like the other images you've used until this lesson.