YouTube Icon

Code Playground.

How to Install and Use Docker on CentOS 7


How to Install and Use Docker on CentOS 7

Docker is a containerization innovation that permits you to rapidly assemble, test and convey applications as convenient, independent holders that can run for all intents and purposes anyplace. 

In this instructional exercise, we'll experience how to introduce Docker CE on CentOS 7 and investigate the essential Docker ideas and orders. 


Prior to continuing with this instructional exercise, ensure that the accompanying essentials are met: 

  • CentOS 7 worker 
  • You are signed in as a non-root client with sudo advantages. You check this guide about how to make another sudo client. 

Install Docker on CentOS

In spite of the fact that the Docker bundle is accessible in the authority CentOS 7 vault, it may not generally be the most recent form. The prescribed methodology is to introduce Docker from the Docker's vaults. 

To introduce Docker on your CentOS 7 worker follow the means beneath: 

Start by refreshing your framework bundles and introduce the necessary conditions: 

sudo yum update
sudo yum install yum-utils device-mapper-persistent-data lvm2

Next, run the accompanying order which will add the Docker stable archive to your framework: 

sudo yum-config-manager --add-repo

Since the Docker storehouse is empowered, introduce the most recent adaptation of Docker CE (Community Edition) utilizing yum by composing: 

sudo yum install docker-ce

When the Docker bundle is introduced, start the Docker daemon and empower it to naturally begin at boot time: 

sudo systemctl start docker
sudo systemctl enable docker

To confirm that the Docker administration is running sort: 

sudo systemctl status docker

The yield should look something like this: 

? docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago
 Main PID: 2492 (dockerd)
   CGroup: /system.slice/docker.service
           ??2492 /usr/bin/dockerd
           ??2498 docker-containerd --config /var/run/docker/containerd/containerd.toml

At the hour of composing, the current stable form of Docker is, 18.06.1, to print the Docker rendition type: 

docker -v
Docker version 18.06.1-ce, build e68fc7a

Executing the Docker Command Without Sudo

Of course, overseeing Docker requires director advantages. On the off chance that you need to run Docker orders as a non-root client without prepending sudo you need to add your client to the docker bunch which is made during the establishment of the Docker CE bundle. You can do that by composing: 

sudo usermod -aG docker $USER

$USER is a climate variable that holds your username. 

Log out and log back in so the gathering enrollment is invigorated. 

To check Docker is introduced effectively and that you can run docker orders without sudo, issue the accompanying order which will download a test picture, run it in a holder, print a "Welcome from Docker" message and exit: 

docker container run hello-world

The yield should resemble the accompanying: 

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest

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

Docker command line interface

Since we have a working Docker establishment, how about we go over the essential linguistic structure of the docker CLI. 

The docker order line take the accompanying structure: 

docker [option] [subcommand] [arguments]

You can list all accessible orders by composing docker without any boundaries: 


In the event that you need more assistance on any [subcommand], simply type: 

docker [subcommand] --help

Docker Images

A Docker picture is comprised of a progression of layers speaking to directions in the picture's Dockerfile that make up an executable programming application. A picture is an unchanging paired document including the application and any remaining conditions, for example, parallels, libraries, and directions important for running the application. To put it plainly, a Docker picture is basically a preview of a Docker compartment. 

The Docker Hub is cloud-based vault administration which among different functionalities is utilized for keeping the Docker pictures either in a public or private archive. 

To look through the Docker Hub store for a picture simply utilize the pursuit subcommand. For instance, to look for the CentOS picture, run: 

docker search centos

The yield should resemble the accompanying: 

NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   4257                [OK]
ansible/centos7-ansible            Ansible on Centos7                              109                                     [OK]
jdeathe/centos-ssh                 CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_…   94                                      [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   52                                      [OK]
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              40                                      [OK]
tutum/centos                       Simple CentOS docker image with SSH access      39

As should be obvious the query items prints a table with five segments, NAME, DESCRIPTION, STARS, OFFICIAL and AUTOMATED. The official picture is a picture that Docker creates related to upstream accomplices. 

On the off chance that we need to download the official form of CentOS 7, we can do that by utilizing the picture pull subcommand: 

docker image pull centos
Using default tag: latest
latest: Pulling from library/centos
469cfcc7a4b3: Pull complete
Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Status: Downloaded newer image for centos:latest

Contingent upon your Internet speed, the download may take a couple of moments or a couple of moments. When the picture is downloaded we can list the pictures with: 

docker image ls

The yield should look something like the accompanying: 

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              e38bc07ac18e        3 weeks ago         1.85kB
centos              latest              e934aafc2206        4 weeks ago         199MB

In the event that for reasons unknown you need to erase a picture you can do that with the picture rm [image_name] subcommand: 

docker image rm centos
Untagged: centos:latest
Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f
Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0

Docker Containers

An example of a picture is known as a holder. A holder speaks to a runtime for a solitary application, cycle, or administration. 

It may not be the most suitable examination however in the event that you are a developer you can think about a Docker picture as class and Docker compartment as an occasion of a class. 

We can begin, stop, eliminate and deal with a compartment with the docker holder subcommand. 

The accompanying order will begin a Docker compartment dependent on the CentoOS picture. In the event that you don't have the picture locally, it will download it first: 

docker container run centos

From the outset sight, it might appear to you that nothing occurred by any means. All things considered, that isn't correct. The CentOS compartment stops following booting up on the grounds that it doesn't have a long-running cycle and we didn't give any order, so the holder booted up, ran an unfilled order and afterward left. 

The switch - it permits us to collaborate with the compartment through the order line. To begin an intuitive holder type: 

docker container run -it centos /bin/bash

As should be obvious from the yield once the compartment is begun the order brief is changed which implies that you're presently working from inside the holder : 

[root@719ef9304412 /]#

To list running compartments : , type: 

docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"         22 minutes ago      Up 22 minutes                           ecstatic_ardinghelli

On the off chance that you don't have any running holders the yield will be vacant. 

To see both running and halted holders, pass it the - a switch: 

docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"              22 minutes ago      Up 22 minutes                                   ecstatic_ardinghelli
c55680af670c        centos              "/bin/bash"              30 minutes ago      Exited (0) 30 minutes ago                       modest_hawking
c6a147d1bc8a        hello-world         "/hello"                 20 hours ago        Exited (0) 20 hours ago                         sleepy_shannon

To erase at least one compartments simply duplicate the holder ID (or IDs) from above and glue them after the compartment rm subcommand: 

docker container rm c55680af670c


You have figured out how to introduce Docker on your CentOS 7 machine and how to download Docker pictures and oversee Docker compartments. You may likewise need to find out about Docker Compose , which permits you to characterize and run multi-holder Docker applications. 

This instructional exercise scarcely starts to expose the Docker environment. In a portion of our next articles, we will keep on jumping into different parts of Docker. To get familiar with Docker look at the official Docker documentation . 

In the event that you have any inquiries or comments, if it's not too much trouble leave a remark beneath.