在 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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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 类…