Skip to content

Install Docker on CentOS

This chapter covers how to install and configure Docker Engine on CentOS.

System Requirements

Docker Engine supports the following CentOS versions:

  • CentOS 9 Stream
  • CentOS 8 Stream
  • CentOS 7 (maintenance mode)

Hardware requirements: 64-bit processor, kernel 3.10+, at least 2GB RAM (4GB+ recommended). The centos-extras repository must be enabled.

Uninstall Old Versions

bash
sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

1. Install yum-utils

bash
sudo yum install -y yum-utils

2. Add Docker Repository

bash
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

3. Install Docker Engine

bash
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4. Start Docker

bash
sudo systemctl start docker

5. Verify Installation

bash
sudo docker run hello-world

Convenience Script

bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Post-Installation Setup

Run Docker Without sudo

bash
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

Enable on Boot

bash
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Common Issues

firewalld Conflicts

bash
# Restart Docker after firewalld changes
sudo systemctl restart docker

# Or allow Docker interface
sudo firewall-cmd --zone=trusted --add-interface=docker0 --permanent
sudo firewall-cmd --reload

SELinux Issues

bash
# Check SELinux status
getenforce

# Temporarily set to permissive
sudo setenforce 0

# Permanent change
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

💡 In production, keep SELinux enabled and configure policies for compatibility.

CentOS 7 Kernel Upgrade

CentOS 7 has an older kernel. Consider upgrading for better Docker support:

bash
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
sudo yum --enablerepo=elrepo-kernel install kernel-ml
sudo reboot

Uninstall Docker

bash
sudo yum remove docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

Further Reading

Content is for learning and research only.