Install Docker-Compose on Raspberry Pi
Install Docker-Compose on Raspberry Pi
Docker is a reputed open platform for building, deploying, running, and sharing containerized applications. A container is a loosely isolated environment.
As a result of the isolation and security, Docker makes it possible to deliver your software quickly and requires minimal resources.
Developers mostly prefer Docker as it speeds up the development process. The increased speed is because you can separate applications from infrastructure.
Docker-Compose is a tool for defining and running multi-container Docker applications.
In comparison to virtual machines, Docker containers are lightweight, which is vital if you are using a Raspberry Pi.
What is Raspberry Pi?
Raspberry Pi is the most popular tiny low-cost computer that was initially used for learning programming, but it was later used it to build a hardware and home automation projects. Furthermore, todays Raspberry Pi’s used widely in industrial applications.
In this tutorial, we show you the steps to follow to install Docker Compose on Raspberry Pi. Continue reading for more elaboration.
What you Need to Install Docker on Raspberry Pi
- Raspberry Pi with a running Raspbian OS
- SSH connection enabled
Steps to Install Docker Compose on Raspberry Pi;
- Set up your Raspberry Pi Operating System (OS)
- Upgrade Packages
- Install Docker
- Install Docker-Compose
- Enable the Docker system service to start your containers on boot
1. Setup your Raspberry Pi with Raspbian, WiFi, and SSH access
Skip this step if you have already set up your Raspberry Pi.
- Download Pi Imager
The official Raspberry Pi Imager is an effortless means of installing OS on Raspberry Pi. The imager comes with the required tools to prepare and flash an SD card with the OS for installation.
Download and install the Pi Imager. If you are to run a headless install, you should select Raspberry Pi OS (32-bit) Lite. For the desktop version, use the ‘Full’ version.
- Enable SSH Access
To make sure the SSH gets enabled when you start your Raspberry Pi, add empty file SSH to the root directory of the SD card after flashing it with the image.
If you are running the Raspberry Pi without a screen or keyboard, this step is essential. To link the Raspberry Pi to a Wifi network, ensure you avail the network details for the initial startup.
Define a wpa_supplicant.conf file in a similar root folder, and ensure it utilizes the line feed (LF) newline character.
Use the following default credentials to connect via SSH;
- Username: pi
- Password: Raspberry
touch ssh
- Enable Wifi
Enable Wifi by creating a file called wpa_supplicant.conf in the root of the boot. Afterward, paste the following:
- Eject the micro SD card
- Boot the Raspberry Pi
After starting up the device, you can link it through SSH using its IP address. You can get this address from the router’s web interface.
Use:
ssh pi@[Raspberry Pi IP address]
Default username – pi
Standard password – Raspberry
You need to change the password during the first connection. You can also configure other valuable things in the handy Raspberry Pi Config Tool:
sudo raspi-config
2. Upgrading and Updating Systems
Update and upgrade the system to ensure you install the most recent version of the software. To do this, open a terminal window and run the following command;
sudo apt-get update
sudo apt-get upgrade
- Assign the .local Domain to Your Raspberry Pi
Assign your Raspberry Pi a .local domain if you use it to host on your network. A .local domain enables you to access your Pi using a simple web address. With the .local domain, you don’t have to remember the IP address.
To create a .local domain, install Avahi Daemon on your Pi;
sudo apt-get install avahi-daemon
Once complete, you don’t need to reboot the device. Raspberry Pi will begin to recognize local network queries for its hostname. By default, the hostname is raspberrypi.
- Install git
Install git as you will need it later.
sudo apt install git-
Upgrade Packages
- Update your package list with the command:
Sudo apt update
- Check installed packages to upgrade:
apt list –upgradable
- Upgrade packages to latest version:
Sudo apt full-upgrade
3. Install Docker
You can install Docker using the convenience script offered at get.docker.com.
- Download and install Docker script
To do this, run the command; curl -fsSL https://get.docker.com -o get-docker.sh
Whenever you download scripts from the internet, examine them before running locally.
- Run the Docker install script
Execute installation script through;
Sudo sh get-docker.sh
4. Include a Non-Root Account to the Docker Group
Automatically, only root users or those with administrative privileges can run the containers. If you are logged out as the root, you can utilize the sudo prefix.
To execute docker commands and avoid typing the sudo each time, you can also add on-root users to the docker group.
The syntax to add more accounts to the Docker group is:
sudo usermod -aG docker ${USER}
To enhance the permissions to the existing user run:
sudo usermod -aG docker ${USER}
Check whether it’s running:
groups ${USER}
5. Log Out then Back In
If you run the command in (c) above, reboot Raspberry Pi for changes to get applied. Alternatively, you can run the command;
sudo su – ${USER}
6. Test Docker
To confirm that Docker installed correctly, take a look at the Docker version.
Run the command by typing;
docker version.
The output will show the Docker version and some extra information. If you’d like information about the whole system, that is, the kernel version, number of containers and images, and a more comprehensive description, type:
docker info
Alternatively, you can run the hello-world image. The best way to test whether the Docker setup is correct is to run the Hello World container.
You can do this by typing the command:
docker run hello-world
The software will get in touch with the Docker daemon, pull the “hello-world” image, and generate a new container depending on that image.
After completing all the steps, the output should let you know that your installation appears to be working correctly.
To remove the image:
docker image rm hello-world
7. Install Docker-Compose
You can install Docker Compose from pre-built binaries that you download from the release page for the project.
To install Docker-Compose, you’ll need to use pip3. Therefore, you need to install python 3 and pip3. If it’s not present, execute the following commands;
sudo apt-get install libffi-dev libssl-dev
sudo apt install python3-dev
sudo apt-get install -y python3 python3-pip
With pip3 and python3 installed, it’s possible to install Docker-Compose via the command;
sudo pip3 install docker-compose
8. Allow the Docker System Service to Launch your Containers on Boot
Since it’s a great and crucial addition, you can customize your Raspberry Pi to run the service with the Docker system automatically when it starts up.
Use the command
sudo systemctl to enable Docker
to run the Docker anytime it boots up. Containers with a relaunch policy set to unless-stopped or always automatically restart following a reboot.
Sample Docker Compose file
Here is an example of a Docker – Compose file that launches three containers. When started, the containers will come up automatically when the Raspberry Pi gets full power cycled.
Run this command to start the containers using Docker-Compose; docker-compose -f docker-compose.yaml up -d
Go to Docker Speed Test project HYPERLINK “https://github.com/robinmanuelthiel/speedtest” on GitHub to learn more about this sample.
Raspberry Pi Docker Images
On Docker Hub, the number of ARM-compatible images is rising. As a result of the popularity of 64-bit ARM in some cloud providers, you may find it easy to get 64-bit Docker containers.
Raspberry Pi design is according to ARM architecture. For this reason, only some Docker images function on the Raspberry Pi.
All Docker image designs not intended for ARM devices will not function. Running docker-apps designed for x86/x64 and i386 architecture on your Raspberry Pi will result in an error.
When looking for images from Docker Hub, you can filter using operating systems and architectures to identify apps that are fully supported.
To customize solutions, the best option is to run a container based on an official image. You’ll then enhance it and apply the changes to a new image.
Upgrading Docker on Raspberry Pi
Rerunning the convenience script to upgrade Docker is not necessary. It can result in issues if it attempts to repositories that are already in place.
Utilize the package manager to upgrade Docker using the command:
sudo apt-get upgrade
Uninstalling Docker on Your Raspberry Pi
Despite having used a convenience script for installation, it’s possible to eliminate Docker through the package manager easily:
sudo apt-get purge docker-ce
Based on the software version, you’ll require an extra command to eliminate Docker:
sudo apt-get purge docker-ce-cli.
To delete images leftover, volumes, containers, and additional relative data, run this command:
sudo rm -rf /var/lib/docker
You’ll need to delete configuration files that are manually edited.