在 CentOS 上安装 Docker 时遇到报错,可能是由于系统版本、依赖冲突或配置问题导致。以下是详细的排查和解决方案:
bash
cat /etc/centos-release
uname -r # 内核需 ≥ 3.10
yum update kernel -y
并重启。Failed to download metadata for repo 'docker-ce-stable'
解决步骤:
# 卸载旧版本(如有)
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加官方仓库(CentOS 7)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# CentOS 8 需额外启用 PowerTools 仓库
sudo dnf config-manager --set-enabled powertools
package docker-ce-3:20.10.0-3.el7.x86_64 requires containerd.io >= 1.4.1
containerd.io
不兼容。解决方案:
# 手动安装最新 containerd.io
sudo yum install -y https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm
# 再安装 Docker
sudo yum install -y docker-ce docker-ce-cli
Conflict with Podman
bash
sudo systemctl disable --now podman
sudo yum remove podman -y
解决方案:
# 临时关闭 SELinux
sudo setenforce 0
# 永久关闭(需编辑 /etc/selinux/config)
# 放行防火墙规则
sudo firewall-cmd --permanent --add-port=2375/tcp
sudo firewall-cmd --reload
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world # 测试运行
Error 1: Cannot connect to the Docker daemon
sudo systemctl status docker
。docker
组:sudo usermod -aG docker $USER
,注销后生效。Error 2: Storage-driver devicemapper not supported
overlay2
:echo '{"storage-driver": "overlay2"}' > /etc/docker/daemon.json
systemctl restart docker
若问题仍未解决,查看详细日志:
journalctl -u docker --no-pager -n 50 # 查看 Docker 服务日志
docker info # 检查 Docker 配置
通过以上步骤,大多数 CentOS Docker 安装问题均可解决。如遇特定报错,可结合日志进一步分析。