
🚀 欢迎来到我的CSDN博客:Optimistic _ chen
✨ 一名热爱技术与分享的全栈开发者,在这里记录成长,专注分享编程技术与实战经验,助力你的技术成长之路,与你共同进步!
🚀我的专栏推荐:
| 专栏 | 内容特色 | 适合人群 |
|---|---|---|
| 🔥C语言从入门到精通 | 系统讲解基础语法、指针、内存管理、项目实战 | 零基础新手、考研党、复习 |
| 🔥Java基础语法 | 系统解释了基础语法、类与对象、继承 | Java初学者 |
| 🔥Java核心技术 | 面向对象、集合框架、多线程、网络编程、新特性解析 | 有一定语法基础的开发者 |
| 🔥Java EE 进阶实战 | Servlet、JSP、SpringBoot、MyBatis、项目案例拆解 | 想快速入门Java Web开发的同学 |
| 🔥Java数据结构与算法 | 图解数据结构、LeetCode刷题解析、大厂面试算法题 | 面试备战、算法爱好者、计算机专业学生 |
| 🔥Redis系列 | 从数据类型到核心特性解析 | 项目必备 |
🚀我的承诺:
✅ 文章配套代码:每篇技术文章都提供完整的可运行代码示例
✅ 持续更新:专栏内容定期更新,紧跟技术趋势
✅ 答疑交流:欢迎在文章评论区留言讨论,我会及时回复(支持互粉)
🚀 关注我,解锁更多技术干货!
⏳ 每天进步一点点,未来惊艳所有人!✍️ 持续更新中,记得⭐收藏关注⭐不迷路 ✨
📌 标签:#技术博客 #编程学习 #Java #C语言 #算法 #程序员
文章目录
前言
参考前文博客【Docker入门】技术架构演进之路 中对Docker发展历程的介绍,Docker并非唯一的容器解决方案,我们了解到最初容器是通过LXC技术实现的。
随着Docker 1.0 版本的发布,在保留LXC支持的同时,Docker引入了自主研发的libcontainer组件,旨在构建更通用的底层容器虚拟化库。
截至2016年,Docker已基本完成从LXC到libcontainer的技术过渡。伴随技术的发展 libcontainer 后成为OCI标准的基础,衍生出runC组件。
Docker的本质
LXC(Linux 容器) :一种操作系统层的虚拟化技术 。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的namespace 和 cgroups 分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境。
LXC是最早一批真正把完整的容器技术用一组简易使用的工具和模板 来极大的简化了容器技术使用的一个方案;后来出现的Docker本质上是LXC的增强版,它本身不是容器,而是容器的易用工具。容器是Linux内核中的技术 ,Docker只是作为容器技术的一个实现,使得应用能够做到"一次封装,到处运行 "。
Docker的引擎迭代从最开始的基于LXC容器管理引擎实现,到后来Docker自建的容器引擎libcontainer实现,最后因为CNCF的介入,直到现在使用工业化标准的容器 runC 。
Docker的架构
Docker使用客户端-服务器(C/S)架构模式,通过远程API来管理和创建Docker容器。

Docker容器通过Docker镜像来创建
- Doocker仓库(Registry) :Docker仓库用来保存镜像(GitHub中的代码仓库),Docker Hub提供了大量镜像使用
- Docker daemon :Docker引擎的核心组件,运行在宿主机上的后台线程,它负责管理和控制Docker所有的核心功能,也称为"守护线程"。
- Docker Client :客户端通过命令行和其他工具使用Docker API与Docker daemon通信
- Docker 镜像(images) :用于创建Docker容器的模板
- Docker 容器(Container) :独立运行的一个应用
安装Docker
安装环境: 华为云 Ubuntu 22.04.4
CPU支持x86_64
卸载历史版本:
powershell
# 这是一个 for 循环,遍历列表中所有软件包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
# 对每个软件包执行 apt-get remove 命令(卸载但保留配置文件)
sudo apt-get remove $pkg;
done

配置docker的下载源
powershell
# 更新本地软件包索引
sudo apt-get update
# 安装必要的依赖工具
sudo apt-get install ca-certificates curl
# 创建密钥目录
sudo install -m 0755 -d /etc/apt/keyrings
# 下载Docker官方的GPG公钥
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
# 设置密钥文件权限
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 将Docker官方仓库添加到系统的软件源列表中
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新软件包
sudo apt-get update
ca-certificates:CA根证书,用于HTTPS连接验证curl:命令行工具,用于从网络下载文件/etc/apt/keyrings:这是 Ubuntu 存储 GPG 密钥的新标准位置https://download.docker.com/linux/ubuntu/gpg:官方密钥的URL-o /etc/apt/keyrings/docker.asc:保存密钥到指定文件(.asc格式)chmod a+r:给所有 ( a )用户添加读取 ( r ) 权限,确保apt包管理器能读取这个密钥文件deb:表示二进制包仓库$(dpkg --print-architecture):动态获取当前架构signed-by=/etc/apt/keyrings/docker.asc:指定验证软件包签名的GPG密钥文件. /etc/os-release:加载系统版本信息文件$VERSION_CODENAME:提取Ubuntu版本号,自动适应当前Ubuntu版本

开始安装Docker全家桶
powershell
# 安装必要的一些系统工具
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证是否安装成功
docker --version

配置docker
powershell
# 加载配置
sudo systemctl daemon-reload
# 测试是否安装成功
docker run hello-world

powershell
# 配置Docker镜像加速器(国内仓库)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"],
"insecure-registries": []
}
EOF
#修改配置后,需要重启才可以加载配置
sudo systemctl daemon-reload
sudo systemctl restart docker
# 测试国内镜像源
docker run hello-world

完结撒花!🎉

如果这篇博客对你有帮助,不妨点个赞支持一下吧!👍
你的鼓励是我创作的最大动力~
✨ 想获取更多干货? 欢迎关注我的专栏 → optimistic_chen
📌 收藏本文,下次需要时不迷路!
我们下期再见!💫 持续更新中......
悄悄说:点击主页有更多精彩内容哦~ 😊
