Skip to content

CentOS 安装 Docker

本文介绍在 CentOS 系统上安装 Docker Engine 的方法。

系统要求

  • CentOS 7(64位)
  • CentOS 8/Stream(64位)
  • CentOS 9/Stream(64位)

注意:CentOS 8 已于 2021 年 12 月停止维护。建议升级到 CentOS Stream 9 或 Rocky Linux / AlmaLinux。

通过官方 YUM 仓库安装

第一步:卸载旧版本

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

第二步:安装 yum-utils 并添加 Docker 仓库

bash
sudo yum install -y yum-utils

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

使用阿里云镜像仓库(推荐国内用户):

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

第三步:安装 Docker Engine

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

第四步:启动并验证

bash
# 启动 Docker
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

# 验证安装
sudo docker run hello-world

CentOS 8 特别说明

CentOS 8 默认使用 podman,安装 Docker 前需要处理冲突:

bash
# 移除 podman 和 buildah
sudo dnf remove podman buildah

# 安装 Docker
sudo dnf install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

安装后配置

免 sudo 使用 Docker

bash
sudo usermod -aG docker $USER
# 重新登录生效

配置镜像加速

bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerhub.icu"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

防火墙配置

CentOS 默认开启 firewalld,Docker 会自动添加 iptables 规则。如果遇到容器网络问题:

bash
# 查看防火墙状态
sudo firewall-cmd --state

# 允许 Docker 相关端口(示例:允许 80 端口)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

卸载 Docker

bash
# 卸载
sudo yum remove docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

# 删除数据
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

常见问题

错误:container-selinux 版本过低

bash
# 升级 container-selinux
sudo yum install -y container-selinux

错误:No such file or directory(CentOS 7)

bash
# 安装额外依赖
sudo yum install -y device-mapper-persistent-data lvm2

总结

CentOS 安装 Docker 使用 yum/dnf 包管理器,推荐使用阿里云镜像源提升下载速度。安装后注意配置防火墙规则,确保容器网络通信正常。