Docker is a container technology very popular in Linux distributions. The docker provides the ability to run single or more commands and applications in an isolated secure environment like a VM but with few resources. As a popular Linux technology, Ubuntu supports docker containers. There are different ways to install Docker on Ubuntu. But two most popular ways are using the Ubuntu official repository or using the Docker-provided installation script via the official site. In this tutorial, we examine both installation methods.
Install Ubuntu Provided Docker
Ubuntu provides the Docker package to install via the package manager like apt, apt-get, or GUI package managers.
Show Docker Package Information
Before installing the Docker we can display the docker package information. First of all the Docker package is named as
docker.io . The
docker package is related to a tiny GUI tool and does not confuse it with the
docker.io which is the real Docker package. We can display the Docker package
docker.io information with the apt show like below.
$ apt show docker.io
Install Docker Package
The Docker package named
docker.io can be installed with the
sudo apt install command.
$ sudo apt install docker.io
Install Docker From Official Site
Docker can be also installed via the official site using provided installation script. I highly recommend the Docker Official Site installation because it provides a more up-to-date version as the Ubuntu provided Docker comes older versions and is not updated in a regular fashion.
First, we update the apt repository to get the latest package information.
$ sudo apt update
First, we install the required prerequisites
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Docker provides the Ubuntu and deb repository about installation. First we add GPG keys using the curl command.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). OK
If everything is OK the output is like above. Now we add the Docker official apt repository to our repository list with the
add-apt-repository command like below.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Now we have added the Docker official Ubuntu repository and we can install packages with the following command.
$ sudo apt install docker-ce docker-ce-cli containerd.io
Disable Docker Update
Docker is a popular and dynamic project which is updated in short intervals. Some features may become absolute and some new features are added. This may create some unreliability to update Docker regularly. So we can disable the docker package update which makes the usage of Docker more reliable. The Docker package update can be disabled with the followint
$ sudo apt-mark hold docker-ce
Check Docker Service Status
The Docker is installed and used as a service. So in order to use Docker, the Docker services should be running. We can check the Docker service with the following
$ systemctl status docker
From the output we can see that the Docker service is
Start Docker Service
If the Docker service is not running we can start the Docker service with the following command. The service management requires the root privileges so we provide the “sudo” command too.
$ sudo systemctl start docker
Start Docker Server Automatically
In some cases, the Docker service may not start automatically during boot. This requires starting the Docker service manually after every boot. We can enable the Docker service to start automatically after boot.
$ sudo systemctl enable docker
Execute Docker Commands As Non-Root User (Regular User)
By default, Docker requires root privileges in order to manage it like creating containers, etc. During the Docker installation, a new group called
docker this group has permission to use docker without any root privileges. So adding non-root or regular users to this Docker group makes it run docker without root privileges.
$ sudo usermod -aG docker $USER
Run Hello World Container with Docker
Now let’s make a test run with the newly installed Docker. As we have configured the current user to use Docker without root privileges we just run the docker command to use it. We will run the Docker contains named
hello-world which is created for testing purposes.
$ docker container run hello-world