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 文件的用户组归属

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

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

相关文章

C#获取磁盘容量:代码实现与应用场景解析

C#获取磁盘容量:代码实现与应用场景解析 在软件开发过程中,尤其是涉及文件存储、数据备份等功能时,获取磁盘容量信息是常见的需求。通过获取磁盘的可用空间和总大小,程序可以更好地进行资源管理、预警提示等操作。在 C# 语言中&a…

2025年- H56-Lc164--200.岛屿数量(图论,深搜)--Java版

1.题目描述 2.思路 (1)主函数,存储图结构 (2)主函数,visit数组表示已访问过的元素 (3)辅助函数,用递归(深搜),遍历以已访问过的元素&…

详细到用手撕transformer下半部分

之前我们讨论了如何实现 Transformer 的核心多头注意力机制,那么这期我们来完整地实现整个 Transformer 的编码器和解码器。 Transformer 架构最初由 Vaswani 等人在 2017 年的论文《Attention Is All You Need》中提出,专为序列到序列(seq2s…

WPF事件处理器+x名称空间

目录 ​编辑 一、事件处理器知识点 1. XAML中的事件绑定 2. C#中的事件处理方法 3. 方法签名解释 4. 命名规范 工作流程 二、导入引用名称空间 三、x名称空间及其常用元素 (1)x名称空间的由来和作用 (2)x名称空间里都有…

Axure设计案例——科技感渐变线性图

想让数据变化趋势展示告别枯燥乏味,成为吸引观众目光的亮点吗?快来看看这个Axure设计的科技感渐变线性图案例!科技感设计风格凭借炫酷的渐变色彩打破传统线性图的单调,营造出一种令人过目难忘的视觉体验。每一条线条都仿佛是流动的…

Git全流程操作指南

Git全流程操作指南 一、Git 环境配置 1. 安装 Git Windows:下载 Git for Windows macOS:brew install git Linux: sudo apt-get update && sudo apt-get install git # Debian/Ubuntu sudo yum install git …

AI与软件工程结合的未来三年发展路径分析

基于对数字化、制造业、工业、零售业等行业的系统调研,以及微软、谷歌、阿里、华为等大厂的实践案例,我们可以预见未来三年AI与软件工程结合将呈现以下发展路径和趋势。 一、技术应用维度 1. AI辅助编程工具全面普及 未来三年,AI辅助编程工…

tiktoken学习

1.tiktoken是OpenAI编写的进行高效分词操作的库文件。 2.操作过程: enc tiktoken.get_encoding("gpt2") train_ids enc.encode_ordinary(train_data) val_ids enc.encode_ordinary(val_data) 以这段代码为例,get_encoding是创建了一个En…

DeepSeek 赋能文化遗产数字化修复:AI 重构千年文明密码

目录 一、引言二、文化遗产数字化修复概述2.1 文化遗产数字化修复的意义2.2 传统数字化修复方法与局限 三、DeepSeek 技术剖析3.1 DeepSeek 技术原理与核心优势3.2 相比其他技术的独特之处 四、DeepSeek 在文化遗产数字化修复中的应用4.1 破损文物的智能修复4.2 文化遗产的虚拟…

leetcode题解513:找树左下角的值(递归中的回溯处理)!

一、题目内容: 题目要求找到一个二叉树的最底层最左边节点的值。具体来说,我们需要从根节点开始遍历二叉 树,找到最深的那层中的最左边的节点,并返回该节点的值。因为要先找到最底层左侧的值,所以我们选择遍历顺序一定…

C#面试问题41-60

41. What is the Singleton design pattern? Singleton is a class that only allows creating a single instance of itselt. 单例设计模式是一个类,它只允许创建自己的单个实例。 构造函数防止他在单例类以外的地方被调用。 使用情景:need a sing…

笔记思考法

掌握麦肯锡流笔记术,对大家来说有以下几种好处: 1) 可以将自己的思考可视化,使之变得更加清晰 2) 避免无用功 3) 经常能够提出有创意的想法 4) 遇到问题时能够及时找到解决办法 5) 不管面对什么情况都能够找出真正有效的解决办法 为什么仅仅通过改变使用…

Rust 学习笔记:关于闭包的练习题

Rust 学习笔记:关于闭包的练习题 Rust 学习笔记:关于闭包的练习题问题 1问题 2以下程序能否通过编译?若能,输出是?以下程序能否通过编译?若能,输出是?考虑该 API,空白处填…

(一)微服务(垂直AP/分布式缓存/装饰器Pattern)

文章目录 项目地址一、创建第一个垂直API1.1 创建Common层1. ICommand接口2. IQuery接口 1.2 创建API1. 实体2. Handler3. endpoint 1.3 使用Marten作为ORM 二、Redis缓存2.1 使用缓存装饰器1. 创建装饰器2. 注册装饰器 2.2 创建docker-compose1. docker-compose2. docker-comp…

Spring AI系列之使用 Spring AI 转录音频文件(基于OpenAI)

概述 企业常常需要从各种类型的音频内容中提取有价值的数据,例如:将客户支持通话转录用于情感分析、为视频生成字幕,或整理会议纪要。然而,手动转录音频文件既耗时又昂贵。 为了解决这一问题,OpenAI 提供了强大的语…

室内VR全景助力房产营销及装修

在当今的地产行业,VR全景已成为不可或缺的应用工具。从地产直播到楼市VR地图,从效果图到水电家装施工记录,整个地产行业的上下游生态中,云VR全景的身影无处不在。本文将探讨VR全景在房产营销及装修领域的应用,并介绍众…

Sentinel限流熔断机制实战

1、核心概念 1.1、流量控制 流量控制是为了 防止系统被过多的请求压垮,确保资源合理分配并保持服务的可用性,比如对请求数量的限制。 流量控制的 3 个主要优势: 防止过载:当瞬间涌入的请求量超出系统处理能力时,会…

深度解析 torch.mean 的替代方案

torch.mean 是什么意思 代码效果解释 segment_vector = torch.mean(segment_embedding, dim=1) # [1, hidden_dim] 这行代码的作用是在指定维度上对张量 segment_embedding 求平均值,实现类似平均池化的效果。 具体来说,dim=1 表示沿着索引为1的维度进行操作。假设 segment…

Paraformer语音模型:一种语音模型加速方法

随着智能语音技术的普及,语音识别(ASR)、语音合成(TTS)、声纹识别等应用场景对模型推理效率提出了极高要求,本文介绍将Paraformer语音模型从预训练模型导出为ONNX格式,并使用ONNX Runtime进行推…

本地部署FreeGPT+内网穿透公网远程访问,搞定ChatGPT外网访问难题

‌FreeGPT‌是一个基于GPT 3.5/4的ChatGPT聊天网页用户界面,提供了一个开放的聊天界面,开箱即用‌。ChatGPT是非常热门的,但访问体验一直不太理想。为了解决这一问题,出现了各类方法和工具,其中FreeGPT是一款非常实用的…