在 Ubuntu 20.04.5 LTS 系統上安裝 Docker CE 26.1.4 完整指南
版本選擇說明
為什么選擇 Docker CE 26.1.4?
1. 版本穩定性和成熟度
- Docker CE 26.1.4 是 2024 年 5 月發布的穩定版本,經過了充分的測試和驗證
- 相比最新的 28.x 版本,26.1.4 在生產環境中更加穩定可靠
- 避免了過于新版本可能存在的未知 bug 和兼容性問題
2. ARM64 架構優化
- Docker 26.1.4 對 ARM64(aarch64)架構有良好的優化支持
- 在 Ubuntu 20.04 LTS 系統上經過驗證,兼容性表現優秀
- 支持多架構鏡像構建和運行,適合 ARM 服務器環境
3. 生態系統兼容性
- 與主流 Kubernetes 版本(1.27-1.29)完全兼容
- 支持當前所有主要的容器鏡像和工具鏈
- 與 CI/CD 平臺(Jenkins、GitLab CI、GitHub Actions)兼容性好
4. Ubuntu 20.04 LTS 系統適配
- 在 Ubuntu 20.04.5 LTS (Focal Fossa) 系統上完美兼容
- 與系統的 systemd、網絡、存儲子系統良好集成
- Ubuntu 官方源和第三方源都提供良好支持
系統要求
- 操作系統: Ubuntu 20.04.5 LTS (Focal Fossa) 或更高版本
- 架構: aarch64 (ARM64)
- 內核版本: 5.4+ (推薦)
- 權限: root 或 sudo 權限
- 網絡: 互聯網連接(用于下載軟件包)
安裝步驟
1. 系統準備
首先更新系統包并安裝必要的依賴:
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
2. 添加 Docker CE 官方 GPG 密鑰
創建密鑰存儲目錄并添加清華大學鏡像源的 GPG 密鑰:
# 創建密鑰目錄
sudo mkdir -p /etc/apt/keyrings# 下載并添加 Docker GPG 密鑰(使用清華大學鏡像源)
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
3. 添加 Docker CE 軟件源
添加適用于 ARM64 架構的 Docker CE 軟件源:
echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. 更新軟件包索引
sudo apt update
5. 查看可用的 Docker 版本
查看可用的 Docker CE 版本和相關組件版本:
# 查看 Docker CE 可用版本
apt-cache madison docker-ce# 查看 containerd.io 可用版本
apt-cache madison containerd.io# 查看 Docker Compose Plugin 可用版本
apt-cache madison docker-compose-plugin
6. 安裝指定版本的 Docker CE
安裝 Docker CE 26.1.4 及相關組件:
sudo apt install -y \docker-ce=5:26.1.4-1~ubuntu.20.04~focal \docker-ce-cli=5:26.1.4-1~ubuntu.20.04~focal \containerd.io=1.6.28-1 \docker-compose-plugin=2.17.3-1~ubuntu.20.04~focal
注意: 如果提示版本不存在,請根據步驟 5 的輸出調整版本號
7. 啟動并配置 Docker 服務
# 啟動 Docker 服務
sudo systemctl start docker# 設置開機自啟
sudo systemctl enable docker# 驗證服務狀態
sudo systemctl status docker
8. 驗證 Docker 安裝
# 查看 Docker 版本
docker --version# 查看詳細信息
docker info# 測試運行容器
sudo docker run hello-world
9. 添加用戶到 docker 組(可選)
避免每次使用 sudo 運行 Docker 命令:
# 添加當前用戶到 docker 組
sudo usermod -aG docker $USER# 重新加載用戶組(或重新登錄)
newgrp docker# 測試不使用 sudo 運行
docker ps
Docker 配置優化
10. 創建 Docker 配置文件
創建 /etc/docker/daemon.json
配置文件進行優化:
sudo mkdir -p /etc/dockercat <<EOF | sudo tee /etc/docker/daemon.json > /dev/null
{"data-root": "/var/lib/docker","registry-mirrors": ["https://hub.geekery.cn/","https://ghcr.geekery.cn","https://wbzql24b.mirror.aliyuncs.com","https://hub.1panel.dev"],"insecure-registries": ["*.*.*.*:86","*.*.*.*:86"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "5","compress": "true"},"storage-driver": "overlay2","live-restore": true,"features": {"buildkit": true},"experimental": false,"default-cgroupns-mode": "host","bip": "172.168.100.1/24","default-address-pools": [{"base": "172.168.0.0/16","size": 24}],"fixed-cidr": "172.168.100.0/25"
}
EOF
配置說明:
- 添加了更多國內鏡像源以提高下載速度
- 可根據實際需求調整鏡像源和網絡配置
- insecure-registries 配置可根據實際私有倉庫地址修改
11. 應用配置并重啟 Docker
# 重新加載 systemd 配置
sudo systemctl daemon-reload# 重啟 Docker 服務
sudo systemctl restart docker# 驗證服務狀態
sudo systemctl status docker
12. 驗證配置生效
# 驗證鏡像源配置
docker info | grep -A 10 "Registry Mirrors"# 驗證網絡配置
ip addr show docker0# 驗證存儲驅動
docker info | grep "Storage Driver"# 測試容器網絡
docker run --rm alpine ip addr show eth0
配置說明
鏡像源配置
hub.geekery.cn
: 高速國內 Docker Hub 鏡像ghcr.geekery.cn
: GitHub Container Registry 鏡像wbzql24b.mirror.aliyuncs.com
: 阿里云鏡像源registry.docker-cn.com
: Docker 中國官方鏡像docker.mirrors.ustc.edu.cn
: 中科大鏡像源
網絡配置
bip
: 設置 docker0 網橋為 172.168.100.1/24fixed-cidr
: 限制容器 IP 范圍為 172.168.100.0/25default-address-pools
: 自定義網絡地址池
日志配置
max-size
: 單個日志文件最大 100MBmax-file
: 保留最多 5 個日志文件compress
: 啟用日志壓縮
其他優化
live-restore
: 支持 Docker 重啟時容器繼續運行buildkit
: 啟用新的構建引擎overlay2
: 使用 overlay2 存儲驅動(Ubuntu 20.04 默認支持)
常見問題排查
1. 權限問題
如果遇到權限錯誤,確保用戶在 docker 組中:
groups $USER | grep docker
2. 網絡配置不生效
如果網絡配置沒有生效,嘗試刪除并重建 docker0 網橋:
sudo systemctl stop docker
sudo ip link delete docker0 2>/dev/null || true
sudo systemctl start docker
3. 鏡像拉取速度慢
驗證鏡像源是否正確配置:
docker info | grep -A 5 "Registry Mirrors"
4. 查看詳細日志
如果遇到啟動問題,查看詳細日志:
sudo journalctl -u docker.service -f
5. Swap 限制警告
如果看到 “WARNING: No swap limit support”,這是正常的,不影響 Docker 功能。如需修復:
sudo nano /etc/default/grub
# 添加: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash cgroup_enable=memory swapaccount=1"
sudo update-grub
sudo reboot
6. Ubuntu 20.04 特定問題
內核版本檢查
# 確認內核版本符合要求
uname -r
# 應該是 5.4.0 或更高版本
systemd 版本
# 檢查 systemd 版本
systemctl --version
# Ubuntu 20.04 使用 systemd 245+
版本信息
- Docker CE: 26.1.4
- containerd.io: 1.6.28-1
- docker-compose-plugin: 2.17.3
- 架構: aarch64 (ARM64)
- 系統: Ubuntu 20.04.5 LTS (Focal Fossa)
- 內核: 5.4.0-216-generic
升級 Docker
如果需要升級到更新版本:
# 查看可用版本
apt-cache madison docker-ce# 升級到指定版本
sudo apt install docker-ce=<新版本號> docker-ce-cli=<新版本號># 或升級到最新版本
sudo apt update
sudo apt upgrade docker-ce docker-ce-cli containerd.io docker-compose-plugin
卸載 Docker(如需要)
# 停止服務
sudo systemctl stop docker docker.socket# 卸載包
sudo apt remove -y docker-ce docker-ce-cli containerd.io docker-compose-plugin# 清理數據(注意:會刪除所有鏡像和容器)
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker# 移除用戶組(可選)
sudo delgroup docker
注意:
- 本指南適用于 Ubuntu 20.04.5 LTS 系統的 aarch64 架構
- 安裝過程中請確保網絡連接正常
- 生產環境建議在測試環境先驗證配置