Docker is a daemon-based container engine which allows us to deploy applications inside containers. With the release of RHEL 8 and CentOS 8, docker package has been removed from their default package repositories, docker has been replaced with podman and buildah.
If are comfortable with docker and deploy most the applications inside the docker containers and does not want to switch to podman then this tutorial will guide you on how to install and use community version of docker on CentOS 8 and RHEL 8 system.
Docker is available in two versions,
- Docker CE (Community Edition)
- Enterprise Edition (EE)
In this guide we will learn how to install Docker CE (Community Edition) on CentOS 8 or RHEL 8 Server.
System Requirements for Docker CE
- Updated Minimal CentOS 8 / RHEL 8
- Sudo or root privileges
- Internet Connection
Note : Run below dnf command to apply all the available updates and then reboot
# dnf update -y ; reboot
Installation Steps of Docker CE on CentOS 8/RHEL 8 Server
Step:1) Enable Docker CE Repository
As we said above, docker packages are not available anymore on CentOS 8 or RHEL 8 package repositories, so run following dnf command to enable Docker CE package repository.
[[email protected] ~]# dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Step:2) Install Docker CE using dnf command
Once the docker ce repo has been configured successfully then run following command to verify which version of docker is available for installation
[[email protected] ~]# dnf list docker-ce Docker CE Stable - x86_64 1.7 kB/s | 3.8 kB 00:02 Available Packages docker-ce.x86_64 3:19.03.13-3.el8 docker-ce-stable [[email protected] ~]#
Now, use beneath dnf command to install latest version of docker,
[[email protected] ~]# dnf install docker-ce --nobest -y
After the installation of docker, start and enable its service using the following systemctl commands
[[email protected] ~]# systemctl start docker [[email protected] ~]# systemctl enable docker
Run the following command to verify installed docker version
[[email protected] ~]# docker --version Docker version 19.03.13, build 4484c46d9d [[email protected] ~]#
Step:3) Verify and test Docker CE Engine
To verify whether docker ce engine has been setup correctly or not, try to spin up a “hello-world” container using below docker command,
[[email protected] ~]# docker run hello-world
Output of above command
As we can see the informational message in above output which confirms docker engine is setup correctly on CentOS 8 / RHEL 8 Server. Let’s move to docker compose installation.
Step:4) Install Docker Compose
As we know that docker compose is used to link multiple containers using a single command. In other words, Docker Compose is useful where we need to launch multiple containers and these containers depends on each other. Examples like launching LAMP/ LEMP applications (WordPress & Joomla etc) insider containers.
Run the following commands to install docker compose on CentOS 8 / RHEL 8,
[[email protected]e ~]# dnf install curl -y [[email protected] ~]# curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Note: Replace “1.27.4” with docker compose version that you want to install but at this point of time this is the latest and stable version of docker compose.
Set the executable permission to docker-compose binary
[[email protected] ~]# chmod +x /usr/local/bin/docker-compose
Verify the docker compose version by running the following command.
[[email protected] ~]# docker-compose --version docker-compose version 1.27.4, build 40524192 [[email protected] ~]#
Note : In case Docker Compose version command does not work, then run below to create soft link
[[email protected] ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
That’s all from this tutorial, I hope these steps help you to setup docker and docker compose on CentOS 8 and RHEL 8 server. Kindly share your feedback and comments in the comments section below.
Read Also: How to Use docker-compose to launch containers