Docker is an open-source software platform used to build, test, and deploy applications quickly. It is a lightweight containerization platform that packages up an application and all its dependencies and delivers them into the virtual container. You can then run this container in any Linux operating system. Docker uses resource isolation that allows you to run multiple containers on the same operating system. Docker was originally designed to run on the Linux platform. Now, it also runs on Microsoft Windows and Apple OS X.

This post will show you how to install and use Docker on Arch Linux.

Step 1 – Configure Repository

By default, the default repository is outdated in Arch Linux, so you will need to modify the default mirror list. You can do it by editing the mirrorlist configuration file:

nano  /etc/pacman.d/mirrorlist

Remove all lines and add the following lines:

## Score: 0.7, United States
Server = http://mirror.us.leaseweb.net/archlinux/$repo/os/$arch
## Score: 0.8, United States
Server = http://lug.mtu.edu/archlinux/$repo/os/$arch
Server = http://mirror.nl.leaseweb.net/archlinux/$repo/os/$arch
## Score: 0.9, United Kingdom
Server = http://mirror.bytemark.co.uk/archlinux/$repo/os/$arch
## Score: 1.5, United Kingdom
Server = http://mirrors.manchester.m247.com/arch-linux/$repo/os/$arch
Server = http://archlinux.dcc.fc.up.pt/$repo/os/$arch
## Score: 6.6, United States
Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch
## Score: 6.7, United States
Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch
## Score: 6.8, United States
Server = http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch
## Score: 7.1, India
Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch
## Score: 10.1, United States
Server = http://mirrors.xmission.com/archlinux/$repo/os/$arch

Save and close the file, then update all the package indexes with the following command:

pacman -Syu

Step 2 – Install Docker

By default, the Docker package is available in the Arch Linux default repository. You can install it easily using the following command.

pacman -S docker

Once the Docker is installed, enable the Docker service to start at system reboot.

systemctl enable docker

Next, restart your system to apply the system.

reboot

After the successful restart, you can verify the status of Docker using the following command.

systemctl status docker

You will get the following output.

● docker.service - Docker Application Container Engine
     Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
     Active: active (running) since Thu 2023-01-05 00:00:42 EST; 56s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 265 (dockerd)
      Tasks: 15 (limit: 2349)
     Memory: 138.7M
        CPU: 486ms
     CGroup: /system.slice/docker.service
             ├─265 /usr/bin/dockerd -H fd://
             └─356 containerd --config /var/run/docker/containerd/containerd.toml --log-level info

You can check Docker information using the following command.

docker info

You should see the following output.

Client:
 Context:    default
 Debug Mode: false

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.22
 Storage Driver: overlay2

Step 3 – Verify Docker Installation

Next, download and run a simple hello-world container to test whether the Docker works or not.

docker run hello-world

This will download the hello-world docker image and run it as shown below.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2db29710123e: Pull complete 
Digest: sha256:94ebc7edf3401f299cd3376a1669bc0a49aef92d6d2669005f9bc5ef028dc333
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

You can verify the downloaded image using the following command.

docker images

You should see the following output.

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   15 months ago   13.3kB

You can also check the status of the hello-world container using the following command.

docker ps -a

You will get the following output.

CONTAINER ID   IMAGE         COMMAND    CREATED          STATUS                      PORTS     NAMES
0afb4631a34b   hello-world   "/hello"   18 seconds ago   Exited (0) 17 seconds ago             epic_kalam

Step 4 – How to Use Docker

With Docker, you can download any image and run it inside the container.

Let’s download the Ubuntu image and run it inside the container.

docker run -dit ubuntu:latest

You will get the following output.

Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
6e3729cf69e0: Pull complete 
Digest: sha256:27cb6e6ccef575a4698b66f5de06c7ecd61589132d5a91d098f7f3f9285415a9
Status: Downloaded newer image for ubuntu:latest
40c92b4107f8d7ff37d41d61a5c9b13b87ace2f8e14a32be8c5c52cc35daa6c9

You can verify the status of the Ubuntu container using the following command.

docker ps

You should see the following output.

CONTAINER ID   IMAGE           COMMAND   CREATED          STATUS          PORTS     NAMES
40c92b4107f8   ubuntu:latest   "bash"    10 seconds ago   Up 10 seconds             tender_wozniak

Next, connect to the Ubuntu container using the following command.

docker exec -it 40c92b4107f8 /bin/bash

You will get into the following shell.

root@40c92b4107f8:/# 

Now, verify your container operating system version using the following command.

cat /etc/lsb-release

You should see the following output.

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"

Finally, exit from the container using the following command.

root@40c92b4107f8:/# exit

Conclusion

In this post, we explained how to install Docker on Arch Linux. We also showed you how to download and run a container using Docker. You can now try to deploy Docker on dedicated hosting from Atlantic.Net!