在 Ubuntu 20.04.5 LTS 系統上安裝 Docker CE 26.1.4 完整指南

在 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

image-20250723164048599

image-20250723164107561

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

image-20250723164132823

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

image-20250723164204308

配置說明

鏡像源配置

  • 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/24
  • fixed-cidr: 限制容器 IP 范圍為 172.168.100.0/25
  • default-address-pools: 自定義網絡地址池

日志配置

  • max-size: 單個日志文件最大 100MB
  • max-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 架構
  • 安裝過程中請確保網絡連接正常
  • 生產環境建議在測試環境先驗證配置

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90257.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90257.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90257.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

避坑指南:Windows 11中 Docker 數據卷的存放位置

在 PowerShell 中使用 docker volume inspect 命令&#xff0c;輸出如下&#xff1a; [{"CreatedAt": "2025-07-23T01:00:45Z","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/…

Hadoop大數據集群架構全解析

技術概述Hadoop的定義及其在大數據領域的地位Hadoop是由Apache基金會開發的開源分布式計算框架&#xff0c;基于Google的MapReduce和GFS論文思想實現&#xff0c;已成為大數據處理的事實標準。它通過分布式存儲和計算解決了傳統數據庫無法處理的海量數據存儲和分析問題&#xf…

【自動化測試】Selenium Python UI自動化測試實用教程

一、引言:Selenium與UI自動化測試基礎 1.1 Selenium簡介 Selenium是一個開源的Web應用自動化測試框架,支持多瀏覽器(Chrome、Firefox、Edge等)和多編程語言(Python、Java、JavaScript等),核心組件包括: WebDriver:通過瀏覽器原生API控制瀏覽器,模擬用戶操作(點擊、…

基于VSCode的nRF52840開發環境搭建

nRF52840是Nordic Semiconductor推出的一款功能強大的多協議SoC&#xff0c;廣泛應用于物聯網設備、可穿戴設備和低功耗藍牙產品開發。本篇文章將詳細介紹如何在VSCode中搭建完整的nRF52840開發環境&#xff0c;讓您能夠高效地進行嵌入式開發。 一、準備工作 VSCode&#xff1a…

GStreamer開發筆記(九):gst-rtcp-server安裝和部署實現簡單的rtsp-server服務器推流Demo

若該文為原創文章&#xff0c;轉載請注明原文出處 本文章博客地址&#xff1a;https://blog.csdn.net/qq21497936/article/details/149054288 長沙紅胖子Qt&#xff08;長沙創微智科&#xff09;博文大全&#xff1a;開發技術集合&#xff08;包含Qt實用技術、樹莓派、三維、O…

C++ namespace機制以及同時使用多個namespace可能存在的問題

在一個 .cpp 文件中使用了多個 using namespace 會怎么樣&#xff1f; 核心答案是&#xff1a;可能會導致“命名沖突&#xff08;Name Collision&#xff09;”和“二義性&#xff08;Ambiguity&#xff09;”&#xff0c;從而引發編譯錯誤。 當你使用 using namespace SomeNam…

基于R語言的分位數回歸技術應用

回歸是科研中最常見的統計學研究方法之一&#xff0c;在研究變量間關系方面有著極其廣泛的應用。由于其基本假設的限制&#xff0c;包括線性回歸及廣義線性回歸在內的各種常見的回歸方法都有三個重大缺陷&#xff1a;(1)對于異常值非常敏感&#xff0c;極少量的異常值可能導致結…

網絡I/O模型詳解-一次了解全部(面試經常會問到相關知識)

前言 網絡I/O模型的五種類型&#xff0c;其實在我們開發程序、設計程序、實現程序的方方面面都一直存在著&#xff0c;本文從實現原理、使用場景、優缺點、詳細的流程圖等方面進行深入的解釋&#xff0c;幫助大家更好的理解常用的五種網絡io模型&#xff0c;助力大家在工作、面…

面試150 合并K個升序鏈表

思路 對鏈表元素進行獲取&#xff0c;然后進行sort()排序&#xff0c;最后通過空節點建立鏈表法重新建立一個有序的鏈表&#xff0c;返回頭節點即可。 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val …

BitDistiller:通過自蒸餾釋放 Sub-4-Bit 大語言模型的潛力

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" BitDistiller&#xff1a;通過自蒸餾釋放 Sub-4-Bit 大語言模型的潛力 摘要 大語言模型&#xff08;LLMs&#xff09;的規模不斷擴大&#xff0c;在自然語言處理方面取得了令人矚目的進展&#xff0c;但這也帶來…

JavaScript 的 `querySelector` 方法詳解

querySelector 是 JavaScript 中用于選擇 DOM 元素的最強大方法之一&#xff0c;它允許你使用 CSS 選擇器語法來查找元素。 基本語法 // 返回文檔中第一個匹配指定 CSS 選擇器的元素 element document.querySelector(selectors);// 從指定元素后代中查找 element parentEle…

第九講:C++中的list與forward_list

目錄 1、list的介紹及使用 1.1、構造及賦值重載 1.2、迭代器 1.3、空間 1.4、訪問 1.5、修改 1.6、操作 2、迭代器失效 3、list的模擬實現 4、forward_list介紹與使用 4.1、構造及賦值重載 4.2、迭代器 4.3、容量 4.4、訪問 4.5、修改 4.6、操作 5、迭代器的分…

華為云數據庫 GaussDB的 nvarchar2隱式類型轉換的坑

bigint 與 nvarchar2比較時發生隱式類型轉換的坑 1. 案例分析 假設&#xff1a; table1有下面兩個字段&#xff1a;id:bigint&#xff0c; source_id nvarchar2(50)數據庫中id 的值一定大于 int4 的最大值&#xff0c;例如存在一條單據&#xff1a; id1947854462980792321&…

spring boot 集成netty,及其一些基本概念

一、基本概念 1、channel:通道&#xff0c;入站或者出站數據的載體 2、ChannelHandler&#xff1a;通道處理器&#xff0c;業務邏輯寫在這里面&#xff0c;netty 5版本將入戰和出站合并成了ChannelHandler 3、ChannelPipeline&#xff1a;通道里的管道&#xff0c;是一個或者多…

7月23日華為機考真題第一題100分

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? bishipass.com 01. 創業投資收益優化 問題描述 K小姐剛剛大學畢業,手頭有 m m m 元資金想要進行創業投資。她發現了 k k

HTML5 跨文檔通信機制:postMessage API 詳解與應用

postMessage 是 HTML5 規范中定義的跨文檔通信&#xff08;Cross-Document Messaging&#xff09;API&#xff0c;其設計目的是解決不同源&#xff08;協議、域名、端口任一存在差異&#xff09;的窗口&#xff08;如 iframe 嵌入的文檔、window.open 創建的新窗口&#xff09;…

Kafka——Kafka中的位移提交

引言&#xff1a;為什么位移提交至關重要&#xff1f;在Kafka的分布式消息系統中&#xff0c;消費者組&#xff08;Consumer Group&#xff09;通過分區分配機制實現負載均衡和容錯&#xff0c;但如何準確記錄每個消費者的消費進度&#xff0c;是保證消息不丟失、不重復的關鍵。…

java設計模式 -【裝飾器模式】

裝飾器模式的定義 裝飾器模式&#xff08;Decorator Pattern&#xff09;是一種結構型設計模式&#xff0c;允許向一個現有對象動態添加新功能&#xff0c;同時不改變其結構。它通過創建包裝對象&#xff08;裝飾器&#xff09;來包裹原始對象&#xff0c;并在保持原始對象方法…

手寫字體生成器:一鍵模擬真實筆跡

軟件介紹 在自媒體創作領域&#xff0c;手寫體文案因其獨特的藝術感而備受青睞。然而&#xff0c;真實的手寫往往效率低下且效果難以保證。今天為大家推薦一款專業的手寫模擬軟件&#xff0c;能夠一鍵生成逼真的手寫字體效果&#xff0c;完美解決創作效率與質量的雙重需求。…

【Android】用 ViewPager2 + Fragment + TabLayout 實現標簽頁切換

文章目錄【Android】用 ViewPager2 Fragment TabLayout 實現標簽頁切換一、引入&#xff1a;什么是 ViewPager2 &#xff1f;二、ViewPager2 的基礎使用1. 在布局文件 (activity_main.xml)中添加 ViewPager22. 制作一個 Fragment2.1 創建一個布局文件2.2 創建一個 Fragment 類…