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-engineInstall Using YUM Repository (Recommended)
1. Install yum-utils
bash
sudo yum install -y yum-utils2. Add Docker Repository
bash
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo3. Install Docker Engine
bash
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin4. Start Docker
bash
sudo systemctl start docker5. Verify Installation
bash
sudo docker run hello-worldConvenience Script
bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.shPost-Installation Setup
Run Docker Without sudo
bash
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp dockerEnable on Boot
bash
sudo systemctl enable docker.service
sudo systemctl enable containerd.serviceCommon 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 --reloadSELinux 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 rebootUninstall 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