Docker
Since this project utilizes Docker technologies extensively, it is necessary to provide documentation on Docker.
Before reading books on Docker, one can start reading some of the following articles:
- Six Docker Basics
- Docker ARG, ENV and .env - a Complete Guide
- Container Terminology Practical Introduction
- Dive Into Docker website
Some Utilities to run Docker
"See this docker container? I wish I could run another one just like it, but I'll be damned if I'm going to type all those command-line switches manually!"
Docker Installation Mysteries
There are two main packages for Docker installation, docker.io
and containerd.io
. If your network doesn't resolve certain repository site, you might not be able to install the software properly, and you might not be given the signals about why. In my case, I used a VPN service to pretend my computer is situated in the USA, and some problems are resolved. The particular case in point is here:
echo "[TASK 5] Install containerd runtime"
apt update -qq >/dev/null 2>&1
apt install -qq -y containerd apt-transport-https >/dev/null 2>&1
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
systemctl restart containerd
systemctl enable containerd >/dev/null 2>&1
Install software from local repository
One way to avoid software download problems is to install a local instance of software repository. Relevant information can be found here: Set up Local Repository for Ubuntu.
Building Multi-Architecture Image
To build docker images for multiple architectures (ARM and AMD/Intel), please look at
- Multi-Platform Docker Builds
- Another reference is here: Mutli-architecture build and images
- Multi-Architecture Images posted 2019
Note that you must do the following command on the machine that tries to build images:
docker buildx create --name mybuilder docker buildx use mybuilder
Then, the --platform linux/amd64,linux/arm64
options will start to work.
Moreover, when building images from different networks, it is possible that certain packages are not available within your network region. Use VPN to get to another network and retry.