Ubuntu 22.04 系统下 Docker 安装与配置全指南
Ubuntu 22.04 系统下 Docker 安装与配置全指南
一、前言
Docker 作为现代开发中不可或缺的容器化工具,能极大提升应用部署和环境管理的效率。本文将详细介绍在 Ubuntu 22.04 系统上安装与配置 Docker 的完整流程,包括环境准备、安装步骤、权限配置及镜像加速优化等关键环节。
二、安装前的环境准备
1. 卸载旧版本 Docker(如有)
在安装新版本 Docker 前,需先卸载系统中可能存在的旧版本:
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 安装必要的支持组件
安装依赖包以确保 Docker 正常运行:
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
三、Docker 安装核心步骤
1. 添加 Docker 官方 GPG 密钥(推荐使用国内镜像源)
国内用户建议使用阿里云镜像源的 GPG 密钥(避免网络问题):
# 阿里源 GPG 密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2. 配置软件源(官方源与阿里源二选一)
方案一:使用 Docker 官方源(国外源,可能较慢)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
方案二:使用阿里云镜像源(推荐国内用户)
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
3. 更新软件包索引并安装 Docker
# 更新系统软件源
sudo apt update# 安装 Docker 最新稳定版
sudo apt install docker-ce docker-ce-cli containerd.io# 验证 Docker 安装版本
sudo docker version# 检查 Docker 服务运行状态
sudo systemctl status docker
四、优化 Docker 使用体验
1. 安装 Docker 命令补全工具
# 安装 bash 补全工具
sudo apt-get install bash-completion# 下载 Docker 补全脚本
sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh# 加载补全配置
source /etc/bash_completion.d/docker.sh
2. 允许非 Root 用户执行 Docker 命令
默认情况下,Docker 命令需要 root 权限,可通过以下步骤赋予普通用户权限:
# 创建 docker 用户组(若不存在)
sudo groupadd docker# 将当前用户添加到 docker 组
sudo usermod -aG docker $USER# 使权限立即生效
newgrp docker# 测试权限(无需 sudo 执行 Docker 命令)
docker ps -a
3. 持久化权限配置(避免重启终端后失效)
编辑 .bashrc
文件,添加以下内容以确保每次登录时自动配置权限:
vi ~/.bashrc# 在文件末尾添加
groupadd -f docker
保存后执行 source ~/.bashrc
使配置生效。
五、配置 Docker 镜像加速器(解决拉取慢问题)
国内访问 Docker 官方镜像仓库可能会遇到网络问题,需配置镜像加速器:
# 创建或修改 Docker 配置文件
sudo vi /etc/docker/daemon.json
在文件中添加以下内容(可选择部分国内镜像源):
{"registry-mirrors": ["https://docker.registry.cyou","https://mirror.aliyuncs.com","https://dockerproxy.com","https://mirror.baidubce.com","https://docker.m.daocloud.io","https://docker.mirrors.ustc.edu.cn"]
}
修改完成后,重启 Docker 服务使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
六、验证 Docker 完整功能
完成所有配置后,可通过运行测试容器验证 Docker 是否正常工作:
# 运行一个测试用的 Docker 容器(输出 "Hello from Docker!")
sudo docker run hello-world
若看到类似以下输出,则表示 Docker 安装与配置成功:
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
七、总结
通过以上步骤,我们在 Ubuntu 22.04 系统上完成了 Docker 的安装、权限配置及镜像加速优化。Docker 的容器化技术能帮助开发者更高效地管理应用环境,后续可进一步学习 Docker Compose、容器编排等进阶功能,提升开发与部署效率。
注意事项:
- 国内用户务必配置镜像加速器,避免拉取镜像时出现网络超时
- 新增用户到 docker 组后,需重新登录或执行
newgrp docker
使权限生效 - 若遇到权限问题,可检查
/var/run/docker.sock
文件的用户组归属
相关文章:
Ubuntu 22.04 系统下 Docker 安装与配置全指南
Ubuntu 22.04 系统下 Docker 安装与配置全指南 一、前言 Docker 作为现代开发中不可或缺的容器化工具,能极大提升应用部署和环境管理的效率。本文将详细介绍在 Ubuntu 22.04 系统上安装与配置 Docker 的完整流程,包括环境准备、安装步骤、权限配置及镜…...

动态表单开发避坑:改变input的值不会触发change事件即时修复策略-WdatePicker ——仙盟创梦IDE
原始传统模式 onchange <input onchange"未来之窗东方仙盟change(this)" oni > <script>function 未来之窗东方仙盟change(onj){console.log("未来之窗东方仙盟change",onj.value)} </script> 测试 原始传统模式 oninput <input …...

10.安卓逆向2-frida hook技术-frida基本使用-frida指令(用于hook)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:图灵Python学院 工具下载: 链接:https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码࿱…...

动态设置微信小程序页面标题(navigationBarTitleText属性)
前言: 最近在公司进行小程序研发的时候,产品给出了一个动态加载页面标题的需求,经过调研之后将结果在这里与各位伙伴进行分享。 代码展示: 在.json文件中进行初始配置: { "usingComponents": {}, &q…...
前端流式接收数据讲解
前端流式接收数据全面讲解 前端流式接收数据(Streaming Data Reception)是现代 Web 应用中一个重要特性,尤其在处理实时通信、大文件传输、聊天、视频播放、实时日志监控等场景下。下面我们从概念到技术实现,再到应用示例&#x…...

Flutter下的一点实践
目录 1、背景2、refena创世纪代码3、localsend里refena的刷新3.1 初始状态3.2 发起设备扫描流程3.3 扫描过程3.3 刷新界面 4.localsend的设备扫描流程4.1 UDP广播设备注册流程4.2 TCP/HTTP设备注册流程4.3 localsend的服务器初始化工作4.4总结 1、背景 在很久以前,…...
Python训练营打卡 Day41
简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化:调整一个批次的分布,常用与图像数据特征图:只有卷积操作输出的才叫特征图调度器:直接修改基础学习率 卷积操作常见流程如下: 1. 输入 → 卷积层 → Batch…...
Eclipse集成lombok
一、安装 Lombok 插件(Eclipse 支持) 下载 lombok.jar: 前往官网下载页面:https://projectlombok.org/download 下载最新版本的 lombok.jar 文件。 运行 lombok.jar 配置 Eclipse: 双击下载的 lombok.jar࿰…...
什么是trace,分布式链路追踪(Distributed Tracing)
在你提到的 “个人免费版” 套餐中,“Trace 上报量:5 万条 / 月,存储 3 天” 里的 Trace 仍然是指 分布式链路追踪记录,但需要结合具体产品的场景来理解其含义和限制。以下是更贴近个人用户使用场景的解释: 一、这里的…...

VScode ios 模拟器安装cocoapods
使用 Homebrew 安装(推荐) 如果你有 Homebrew,直接用它安装更稳定: brew install cocoapods...

Redis最佳实践——安全与稳定性保障之数据持久化详解
Redis 在电商应用的安全与稳定性保障之数据持久化全面详解 一、持久化机制深度解析 1. 持久化策略矩阵 策略触发方式数据完整性恢复速度适用场景RDB定时快照分钟级快容灾备份/快速恢复AOF实时追加日志秒级慢金融交易/订单关键操作混合模式RDBAOF同时启用秒级中等高安全要求场…...
互联网大厂Java求职面试实战:Spring Boot微服务架构及Kafka消息处理示例解析
互联网大厂Java求职面试实战:Spring Boot微服务架构及Kafka消息处理示例解析 引言 在互联网大厂的Java开发岗位面试中,考察候选人对微服务架构设计、消息队列处理及高并发处理能力是重点。本文结合Spring Boot框架和Kafka消息队列,模拟一个…...

K 值选对,准确率翻倍:KNN 算法调参的黄金法则
目录 一、背景介绍 二、KNN 算法原理 2.1 核心思想 2.2 距离度量方法 2.3 算法流程 2.4算法结构: 三、KNN 算法代码实现 3.1 基于 Scikit-learn 的简单实现 3.2 手动实现 KNN(自定义代码) 四、K 值选择与可视化分析 4.1 K 值对分类…...

技术栈ES的介绍和使用
目录 1. 全文搜索引擎(Elastic Search)的由来2. Elastic Search 概述2.1 Elastic Search 介绍2.2 Elastic Search 功能2.3 Elastic Search 特点 3. 安装 Elastic Search3.1 ES 的安装3.2 安装 kibana3.3 ES 客户端的安装 4. Elastic Search 基本概念4.1 …...
跟Gemini学做PPT-模板样式的下载
好的,这里有一些推荐的网站,您可以在上面找到PPT目录样式和模板的灵感: SlideModel (slidemodel.com) 提供各种预先设计的目录幻灯片模板。这些模板100%可编辑,可用于PowerPoint和Google Slides。您可以找到不同项目数量ÿ…...

Windows版本的postgres安装插件http
1、下载安装包 这里使用安装 pgsql-http 的扩展 源码地址:GitHub - pramsey/pgsql-http: HTTP client for PostgreSQL, retrieve a web page from inside the database. 编译的安装地址:http extension for windows updated to include PostgreSQL17 …...

uni-app学习笔记十六-vue3页面生命周期(三)
uni-app官方文档页面生命周期部分位于页面 | uni-app官网。 本篇再介绍2个生命周期 1.onUnload:用于监听页面卸载。 当页面被关闭时,即页面的缓存被清掉时触发加载onUnload函数。 例如:在demo6页面点击跳转到demo4,在demo4页面回退不了到d…...
优化的两极:凸优化与非凸优化的理论、应用与挑战
在机器学习、工程设计、经济决策等众多领域,优化问题无处不在。而在优化理论的世界里,凸优化与非凸优化如同两个截然不同的 “王国”,各自有着独特的规则、挑战和应用场景。今天,就让我们深入探索这两个优化领域的核心差异、算法特…...

(五)MMA(OpenTelemetry/Rabbit MQ/ApiGateway/MongoDB)
文章目录 项目地址一、OpenTelemetry1.1 配置OpenTelemetry1. 服务添加2. 添加服务标识3. 添加请求的标识4. 添加中间价 二、Rabbit MQ2.1 配置Rabbit MQ1. docker-compose2. 添加Rabbit MQ的Connect String 2.2 替换成Rabbit MQ1. 安装所需要的包2. 使用 三、API Gateways3.1 …...

TCP通信与MQTT协议的关系
1. MQTT 处理核心(Mqtt_Pro) void Mqtt_Pro(void) { MQTT_Init(); // 初始化MQTT协议栈(连接参数、缓冲区等) MQTT_SendPro(); // 处理MQTT发送(封装消息,调用TCP发送) MQTT_RecPro();…...
AWS创建github相关的角色
创建github-actions角色 {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Federated": "arn:aws:iam::11111111:oidc-provider/token.actions.githubusercontent.com…...
数据编辑器所具备的数据整理功能
在企业的数据处理过程中,数据清洗与整理是至关重要的环节,而数据编辑器在这方面发挥着关键作用。在一份包含客户信息的数据表中,常常会出现缺失值的情况。比如客户的年龄、联系方式等字段可能因为各种原因没有被记录,这就形成了缺…...
Unity网络开发实践项目
摘要:该网络通信系统基于Unity实现,包含以下几个核心模块: 协议配置:通过XML定义枚举(如玩家/英雄类型)、数据结构(如PlayerData)及消息协议(如PlayerMsg)&a…...

Jetson Orin Nano - SONY imx415 camera驱动开发
目录 前言: 调试准备工作: 修改内核默认打印等级 一、imx415驱动开发 1、硬件接线 2、设备树修改 2.1 创建 tegra234-p3767-camera-p3768-imx415-C-4lane.dtsi 文件 2.2 tegra234-p3767-camera-p3768-imx415-C-4lane.dtsi 添加到设备树 2.3 编译设备树 3、imx415驱动…...

word为跨页表格新加表头和表名
问题: 当表格过长需要跨页时(如下图所示),某些格式要求需要转页接排加续表。 方法一: 1、选中表格,在“表布局”区域点开“自动调整”,选择“固定列宽”(防止后续拆分表格后表格变…...

测试用例篇章
本节概要: 测试⽤例的概念 设计测试⽤例的万能思路 设计测试⽤例的⽅法 一、测试用例 1.1 概念 什么是测试用例? 测试⽤例(Test Case)是为了实施测试⽽向被测试的系统提供的⼀组集合,这组集合包含:测…...

2025年北京市职工职业技能大赛第六届信息通信行业网络安全技能大赛复赛CTF部分WP-哥斯拉流量分析
2025年北京市职工职业技能大赛第六届信息通信行业网络安全技能大赛复赛CTF部分WP-哥斯拉流量分析 一、流量分析 题目没有任何提示,附件gzl.pcap 解题哥斯拉流量300多KB包很多,没啥经验只能挨个看回来之后又狠狠得撸了一把哥斯拉流量分析我这里用的是哥斯拉4.0.1 测试链接…...

Django ToDoWeb 服务
我们的任务是使用 Django 创建一个简单的 ToDo 应用程序,允许用户添加、查看和删除笔记。我们将通过设置 Django 项目、创建 Todo 模型、设计表单和视图来处理用户输入以及创建模板来显示任务来构建它。我们将逐步实现核心功能以有效地管理 todo 项。 Django ToDoWeb 服务 …...
【软件】在 macOS 上安装 Postman
在 macOS 上安装 Postman 是一个简单的过程,以下是详细的步骤: 一、下载 Postman • 访问 Postman 官方网站: 打开浏览器,访问Postman 官方下载页面。 • 下载安装包: 页面会自动识别你的系统,点击“Dow…...

各种数据库,行式、列式、文档型、KV、时序、向量、图究竟怎么选?
慕然回首,发现这些年来涌现出了许多类型的数据库,今天抽空简单回顾一下,以便于后面用到时能快速选择。 1. 关系型数据库(行式) 关系型数据库(RDBMS),我们常说的数据库就是指的关系型数据库。 它的全称是关…...