是的,您列出的命令是完整的安装步骤,但为了确保100%可靠性和处理可能的问题,我建议进行以下优化和补充:
完整优化的安装脚本(包含错误处理和验证)
bash
#!/bin/bash
# 1. 彻底清理旧版本和配置
sudo apt remove -y docker docker-engine docker.io containerd runc
sudo apt purge -y docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker /var/lib/containerd
sudo rm -f /etc/apt/sources.list.d/docker*.list
# 2. 安装必要依赖
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# 3. 添加阿里云Docker镜像源
echo "添加阿里云镜像源..."
sudo tee /etc/apt/sources.list.d/docker-aliyun.list <<-'EOF'
deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal stable
EOF
# 4. 添加GPG密钥(使用apt-key替代方案)
echo "添加GPG密钥..."
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker-aliyun.list > /dev/null
# 5. 更新源(增加重试机制)
echo "更新软件源..."
for i in {1..3}; do
sudo apt update && break
echo "APT更新失败,重试 ($i/3)..."
sleep 2
done
# 6. 安装Docker(指定稳定版本)
echo "安装Docker组件..."
sudo apt install -y \
docker-ce=5:24.0.7-1~ubuntu.20.04~focal \
docker-ce-cli=5:24.0.7-1~ubuntu.20.04~focal \
containerd.io=1.6.31-1 \
docker-buildx-plugin=0.11.2-1~ubuntu.20.04~focal \
docker-compose-plugin=2.23.3-1~ubuntu.20.04~focal
# 7. 配置和启动服务
echo "配置Docker服务..."
sudo systemctl enable docker
sudo systemctl start docker
# 8. 验证安装
echo "验证安装..."
sudo docker --version
sudo docker run --rm hello-world
# 9. 用户权限配置
echo "配置用户权限..."
sudo usermod -aG docker $USER
echo "请执行以下命令使组权限生效:"
echo " newgrp docker"
echo "或重新登录系统"
关键优化说明:
-
彻底清理:
- 增加了旧版本组件的清理(
docker-engine
,docker.io
,runc
) - 删除遗留配置目录(
/var/lib/containerd
)
- 增加了旧版本组件的清理(
-
密钥处理优化:
- 使用更安全的
gpg --dearmor
替代过时的apt-key add
- 将密钥存储在
/usr/share/keyrings
(现代Linux标准)
- 使用更安全的
-
安装稳定性增强:
- 添加APT更新重试机制(应对网络波动)
- 指定版本安装避免最新版兼容性问题
bashdocker-ce=5:24.0.7-1~ubuntu.20.04~focal containerd.io=1.6.31-1 # 使用经过验证的稳定版本
-
完整组件安装:
- 明确包含
docker-buildx-plugin
和docker-compose-plugin
- 避免依赖缺失问题
- 明确包含
-
验证步骤:
- 添加版本检查(
docker --version
) - 运行
hello-world
容器确认核心功能
- 添加版本检查(
使用说明:
-
将脚本保存为
install_docker.sh
-
赋予执行权限:
bashchmod +x install_docker.sh
-
执行安装:
bash./install_docker.sh
安装后推荐配置:
bash
# 配置阿里云镜像加速器(替换<your-id>)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# 重启生效
sudo systemctl daemon-reload
sudo systemctl restart docker
# 检查配置
docker info | grep Registry
注意 :从阿里云容器镜像服务控制台获取专属加速器地址(免费),替换
<your-id>
特殊问题处理:
如果仍遇到包下载问题,手动下载安装:
bash
# 获取阿里云下载地址
PKG_URL="https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/focal/pool/stable/amd64"
# 下载核心包
wget ${PKG_URL}/containerd.io_1.6.31-1_amd64.deb
wget ${PKG_URL}/docker-ce_24.0.7-1~ubuntu.20.04~focal_amd64.deb
wget ${PKG_URL}/docker-ce-cli_24.0.7-1~ubuntu.20.04~focal_amd64.deb
# 安装
sudo dpkg -i containerd.io*.deb
sudo dpkg -i docker-ce-cli*.deb
sudo dpkg -i docker-ce*.deb
这个优化方案解决了原始命令可能存在的密钥存储问题、版本兼容性问题,并增加了网络波动的容错处理,特别适合国内服务器环境。