是的,您列出的命令是完整的安裝步驟,但為了確保100%可靠性和處理可能的問題,我建議進行以下優化和補充:
完整優化的安裝腳本(包含錯誤處理和驗證)
#!/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}; dosudo apt update && breakecho "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更新重試機制(應對網絡波動)
- 指定版本安裝避免最新版兼容性問題
docker-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
- 賦予執行權限:
chmod +x install_docker.sh
- 執行安裝:
./install_docker.sh
安裝后推薦配置:
# 配置阿里云鏡像加速器(替換<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>
特殊問題處理:
如果仍遇到包下載問題,手動下載安裝:
# 獲取阿里云下載地址
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
這個優化方案解決了原始命令可能存在的密鑰存儲問題、版本兼容性問題,并增加了網絡波動的容錯處理,特別適合國內服務器環境。