基于国内环境 在Ubuntu 上安装 Docker 指南

前言

在容器化技术主导云原生时代的今天,Docker 凭借其轻量化、高移植性和秒级部署能力,已成为开发与运维的必备工具。然而,国内用户在 Ubuntu 系统上安装 Docker 时,常因 ​官方镜像源访问受限、网络延迟高、依赖包安装失败 等问题陷入困境,导致效率大幅降低。

本文针对 ​Ubuntu 22.04 LTS(Jammy)及 24.04 LTS(Noble)​ 系统,结合国内网络环境特性,提供一套 ​开箱即用、高效稳定 的 Docker 部署方案。

一、安装前的环境准备

1. 系统要求

操作系统:Ubuntu 22.04 LTS(Jammy)或 24.04 LTS(Noble)
权限要求sudo 权限
网络要求:需访问国内镜像源(如阿里云、清华源)

2. 清理旧版本(如适用)
sudo apt-get remove docker docker-engine docker.io containerd runc

二、安装 Docker CE 社区版

1. 更新系统与安装依赖
# 更新软件包索引
sudo apt-get update
# 安装基础依赖
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common
2. 配置国内镜像源与密钥

(阿里云示例)

# 添加 GPG 密钥(阿里云镜像)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg# 添加 Docker 仓库(适配当前系统版本)
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.list > /dev/null

注意$(lsb_release -cs) 会自动获取系统代号(如 jammynoble

3. 安装 Docker 引擎
# 更新仓库并安装 Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
4. 验证安装
# 启动服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker# 运行测试容器
sudo docker run hello-world

若输出 Hello from Docker! 表示安装成功


三、国内镜像加速配置

1. 配置镜像加速器

编辑 /etc/docker/daemon.json,添加国内镜像源地址:

sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.m.daocloud.io",      # DaoCloud镜像"https://docker.1ms.run" # 公益镜像(可选)]
}
EOF

重启服务生效

sudo systemctl daemon-reload
sudo systemctl restart docker

验证配置

docker info | grep "Registry Mirrors"

需显示配置的镜像地址


四、权限管理与优化

1. 非 root 用户权限

将当前用户加入 docker 组,避免使用 sudo

sudo usermod -aG docker $USER
newgrp docker    # 刷新组权限
2. 存储路径优化(可选)

若需自定义 Docker 存储目录(如挂载大容量磁盘):

# 创建存储目录并软链接
sudo mkdir -p /data/docker
sudo ln -s /data/docker /var/lib/docker

五、常见问题与解决方案

1. 安装依赖报错

错误示例E: Unable to locate package docker-ce
原因:镜像源未正确适配系统版本或仓库未启用
解决:重新检查仓库配置,确保 $(lsb_release -cs) 输出与镜像源支持的版本匹配

2. 镜像拉取失败

原因:加速器地址失效或网络不稳定
解决:更换镜像源(优先使用腾讯云或阿里云),并检查防火墙规则:

# 临时关闭防火墙(仅测试用)
sudo ufw disable
3. 服务启动失败

错误示例Failed to start docker.service
排查步骤

# 查看详细日志
journalctl -u docker.service --no-pager
# 检查存储驱动兼容性(推荐 overlay2)
docker info | grep "Storage Driver"

六、扩展功能

1. Docker Compose 安装
sudo apt-get install -y docker-compose-plugin

验证:docker compose version

2. Portainer 可视化工具部署
docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

访问 http://<IP>:9000 初始化管理界面


总结

本文基于国内网络环境,从依赖安装到镜像加速配置,完整覆盖了 Docker 在 Ubuntu 系统上的部署流程,并针对常见问题提供解决方案。通过结合阿里云、腾讯云等镜像源,可显著提升安装与镜像拉取效率,满足开发与生产环境需求


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:二叉树(三)·(重点)

二叉树的存储结构 ⼆叉树⼀般可以使⽤两种结构存储&#xff0c;⼀种顺序结构&#xff0c;⼀种链式结构。 顺序结构 顺序结构存储就是使⽤数组来存储&#xff0c;⼀般使⽤数组只适合表⽰完全⼆叉树&#xff0c;因为不是完全⼆叉树会有 空间的浪费&#xff0c;完全⼆叉树更适合…

EasyExcel实现图片导出功能(记录)

背景&#xff1a;在旧系统的基础上&#xff0c;导出一些工单信息时&#xff0c;现需要新添加处理人的签名或者签章&#xff0c;这就涉及图片的上传、下载、写入等几个操作。 1、EasyExcel工具类 &#xff08;1&#xff09;支持下拉框的导出。 import com.alibaba.excel.Easy…

Android Material Design 3 主题配色终极指南:XML 与 Compose 全解析

最小必要颜色配置 <!-- res/values/themes.xml --> <style name"Theme.MyApp" parent"Theme.Material3.DayNight"><!-- 基础三原色 --><item name"colorPrimary">color/purple_500</item><item name"col…

【Git】“warning: LF will be replaced by CRLF”的解决办法

一、原因分析 不同操作系统的换行符标准不同&#xff1a; • Windows&#xff1a;使用 CRLF&#xff08;\r\n&#xff09;表示换行&#xff1b; • Linux/Mac&#xff1a;使用 LF&#xff08;\n&#xff09;表示换行 Git 检测到本地文件的换行符与仓库设置或目标平台不兼容时…

PyTorch 深度学习实战(33):联邦学习与隐私保护

在上一篇文章中,我们探讨了多模态学习与CLIP模型的应用。本文将深入介绍联邦学习(Federated Learning)这一新兴的分布式机器学习范式,它能够在保护数据隐私的前提下实现多方协作的模型训练。我们将使用PyTorch实现一个基础的联邦学习框架,并在图像分类任务上进行验证。 一…

蓝桥杯 web 展开你的扇子(css3)

普通答案&#xff1a; #box:hover #item1{transform: rotate(-60deg); } #box:hover #item2{transform: rotate(-50deg); } #box:hover #item3{transform: rotate(-40deg); } #box:hover #item4{transform: rotate(-30deg); } #box:hover #item5{transform: rotate(-20deg); }…

LLM驱动的智能体:基于GPT的对话智能体开发指南

前言 大语言模型&#xff08;LLM, Large Language Model&#xff09;正在彻底改变智能体&#xff08;Agent&#xff09;的设计和实现方式。从简单的聊天机器人到复杂的自动化助手&#xff0c;基于GPT等LLM的对话智能体已经在客服、教育、办公自动化、编程助手等领域得到了广泛…

深度解析 C# 中介者模式:设计与实战应用

中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式&#xff0c;其核心思想是将多个对象之间的交互集中到一个中介者对象中&#xff0c;从而减少对象之间的直接交互&#xff0c;降低耦合度。在实现复杂系统时&#xff0c;中介者模式有助于提高系统的可维…

每日算法-250408

记录今天解决的两道 LeetCode 算法题&#xff0c;主要涉及二分查找的应用。 1283. 使结果不超过阈值的最小除数 题目描述 思路 核心思路是 二分查找。 解题过程 为什么可以使用二分&#xff1f; 关键在于单调性。对于一个固定的数组 nums&#xff0c;当除数 divisor 增大时&…

MySQL的子查询

一、前言 MySQL 子查询是指嵌套在其他 SQL 语句&#xff08;如 SELECT、WHERE、FROM 等&#xff09;内部的查询。用于辅助主查询完成复杂的数据筛选或计算。 二、子查询分类 标量子查询 描述&#xff1a;返回 单行单列&#xff08;一个值&#xff09;&#xff0c;常用于比较运…

Linux 基础入门操作 前言 VIM的基本操作 2

1 VIM的背景介绍 Vi 的诞生与1976年&#xff0c;Vim 的前身是 Vi&#xff08;Visual Editor&#xff09;&#xff0c;由 Bill Joy 在 BSD Unix 系统上开发&#xff0c;作为 ed&#xff08;行编辑器&#xff09;的改进版本&#xff0c;提供全屏编辑功能&#xff0c;成为 Unix/L…

Java:Set操作

目录 Set 转 List Set 转 List Set<String>set new HashSet<String>(); set.add("c"); set.add("d"); set.add("a"); set.add("a");//方法一&#xff1a; List<String>list new ArrayList<String>(set);//…

算力驱动未来:从边缘计算到高阶AI的算力革命

算力驱动未来&#xff1a;从边缘计算到高阶AI的算力革命 摘要 本文深入探讨了不同算力水平&#xff08;20TOPS至160TOPS&#xff09;在人工智能领域的多样化应用场景。从边缘计算的实时目标检测到自动驾驶的多传感器融合&#xff0c;从自然语言处理的大模型应用到AI for Scie…

虚拟机上安装openEuler和openGauss数据库

1.虚拟机版本选择VM 16 PRO 2.openEuler版本选择openEuler-22.03-LTS-SP4-x86_64 下载地址&#xff1a;https://mirrors.aliyun.com/openeuler/openEuler-22.03-LTS-SP4/ISO/x86_64/openEuler-22.03-LTS-SP4-x86_64-dvd.iso 3.虚拟机安装openEuler过程&#xff1a; 4.安装ope…

0_Pytorch中的张量操作

[引言]张量的概念 1.基本概念 张量是一个通用的多维数组&#xff0c;可以表示标量&#xff08;0 维&#xff09;、向量&#xff08;1 维&#xff09;、矩阵&#xff08;2 维&#xff09;以及更高维度的数据。张量是 PyTorch 中的核心数据结构&#xff0c;用于表示和操作数据。…

LS-LINUX-002 简易创建SSH

LS-LINUX-002 简易创建SSH 1. CentOS 8 创建和配置SSH服务 1.1 安装SSH服务 CentOS 8 默认已经安装了OpenSSH服务。如果没有安装&#xff0c;可以使用以下命令安装&#xff1a; sudo dnf install -y openssh-server1.2 启动SSH服务 安装完成后&#xff0c;需要启动SSH服务…

计算机专业求职面试的常见题目分类整理

以下是计算机专业求职面试的常见题目分类整理&#xff0c;每个大类精选20道高频问题&#xff0c;结合参考内容进行解析与扩展&#xff0c;帮助系统化备考&#xff1a; 一、数据结构与算法 解释时间复杂度和空间复杂度 时间复杂度衡量算法执行时间随输入规模的增长趋势&#xf…

脚本启动 Java 程序

如果你想在后台启动一个 Java 程序&#xff0c;并在终端窗口中显示一个自定义的名字&#xff0c;可以通过编写一个简单的脚本来实现。以下是一个基于 Linux/macOS 的解决方案&#xff0c;使用 Bash 脚本启动 Java 程序&#xff0c;并在终端窗口中显示自定义标题。 示例脚本 创建…

CentOS禁用nouveau驱动

1、验证 nouveau 是否在运行 lsmod | grep nouveau如果命令返回结果&#xff0c;说明 nouveau 驱动正在运行。 2、编辑黑名单文件 通过编辑黑名单配置文件来禁用 nouveau 驱动&#xff0c;这样在系统启动时不会加载它。 vi /etc/modprobe.d/blacklist-nouveau.conf修改以下…

Linux: network: tcpdump: packets dropped by kernel

文章目录 最近遇到一个问题原因libpcap/tcpdump 接口linux/libpcap 接口内核的处理原因可能有以下几种:解决方法:man pcap_stats最近遇到一个问题 tcpdump命令显示有dropped的包,而且是被内核drop的。 [root@-one-01 ~]# tcpdump -i any udp and port 8080 -v -w /root/udp…