CentOS 7 国内安装 Docker CE(阿里云源)
环境:CentOS 7 · x86_64
原因:国内直连
download.docker.com常超时,改用阿里云 Docker CE 镜像。
提醒: CentOS 7 已于 2024-06 EOL。能迁 AlmaLinux / Rocky Linux 更好;必须继续用再按本文安装。
1. 卸载旧版本(如有)
bash
sudo yum remove -y docker \
docker-client docker-client-latest \
docker-common docker-latest docker-latest-logrotate \
docker-logrotate docker-engine \
docker-ce docker-ce-cli containerd.io
2. 添加阿里云源并安装
bash
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 把 repo 里的官方地址换成阿里云(关键)
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' \
/etc/yum.repos.d/docker-ce.repo
sudo yum makecache
sudo yum install -y docker-ce docker-ce-cli containerd.io
指定版本(可选):
bash
yum list docker-ce --showduplicates | sort -r
sudo yum install -y docker-ce-24.0.9 docker-ce-cli-24.0.9 containerd.io
3. 启动并验证
bash
sudo systemctl enable --now docker
sudo docker version
sudo docker run --rm hello-world
出现 Hello from Docker! 即成功。
免 sudo(可选,重新登录后生效):
bash
sudo usermod -aG docker $USER
4. 配置镜像加速(强烈建议)
Docker Hub 国内拉取易失败。阿里云 ECS 可在控制台:容器镜像服务 ACR → 镜像工具 → 镜像加速器 拿到专属地址(公共加速域名可能已失效)。
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://你的加速地址.mirror.aliyuncs.com"
],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
}
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo docker info | grep -A5 "Registry Mirrors"
5. 一键安装(最小步骤)
bash
sudo yum remove -y docker docker-common docker-engine docker-ce docker-ce-cli containerd.io 2>/dev/null
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
sudo docker run --rm hello-world
6. 常见问题
| 现象 | 处理 |
|---|---|
Cannot find a valid baseurl / yum 超时 |
先换 CentOS Base 源(见下) |
containerd.io 冲突 |
卸掉旧 docker / containerd 后再装 |
hello-world 拉取失败 |
配好 registry-mirrors,或改用 ACR |
| 内核过旧 | uname -r,CentOS 7 默认 ≥ 3.10 一般即可 |
Base 源异常时:
bash
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo \
https://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all && sudo yum makecache
官方源停更后,部分镜像站会切到 vault。上面失效时,改用对应 vault 归档源即可。
速查: systemctl status/start/stop/restart docker · docker version · docker info · docker images · docker ps -a