微服务实战系列之玩转Docker(一)

前言

话说计算机的"小型化"发展,历经了大型机、中型机直至微型机,贯穿了整个20世纪的下半叶。同样,伴随着计算机的各个发展阶段,如何做到"资源共享、资源节约",也一直是一代又一代计算机人的不懈追求和历史使命。今日的IT人应该感谢前辈们的付出和努力,没有他/她们,我想难以收获如今"信息爆炸"的繁荣景象。

其中,资源的虚拟化之路,妥妥是一个百折不挠、值得大书特书的伟大篇章。正因如此,云计算终于可以站在信息时代发展之巅,顺应历史发展潮流,成为与大数据、人工智能、工业互联网、物联网、车联网等并驾齐驱的信息化名片之一。

那么,博主撇开"云计算",暂时不表。今天咱们来聊聊Docker吧,一个时代的"宠儿"。


揭秘Docker

一个新事物的诞生,往往会经历一段甚至长期的"蛰伏期"。在这个期间,新事物通常会围绕"提出问题------>分析问题------>讨论------>提出方案------>实施方案"------这个思路发展。

那么,docker也不例外。它的形象是一艘"满载的大船"。为什么会这样设计或定位它呢?请允许博主慢慢道来。
先来看看它是哪来的。从来新鲜的、有个性的、有价值的东西,都讲究个"师出有名"。

Q1:从哪来

Docker的历史可以追溯到2013年,那时的移动互联网也逐步迈进了"新时代",方兴未艾。当年,Docker正如当今的LLM(Large Language Model)一样,炙手可热,一经问世便注定不凡。只是在开源化历程中,它也经历了很多曲折和困难。谈到这里,博主不禁有感而发:"商业化总是要有的,开源精神也同样可贵。开源不意味着没有商机。比如私有云与公有云之间的分化,同样走出了各自的精彩。"

Docker,一个基于LXC(Linux容器,Google的杰作之一)的容器,能够从dotCloud公司的一个私有项目,借机完成华丽转身,可以说,"命运掌握在了自己手里"。

那么,博主总结一句话:Docker是一个有史以来Container技术的集大成者,同样是站在了巨人的肩膀上,完成它的历史使命。

Q2:干什么

知道了它的来历后,接下来,博主继续带着大家看看,Docker是干什么的。通过它的背景资料,可以理解它的使命和目标是什么。即"Build------>Ship------>Run"。翻译成一句话就是"build once, run anywhere"(一次构建,遍地运行)。

1. Build(构建)

一句话,基于Docker的构建原则和规则,建立一套可行的服务(包括所需的各种资源、文件、应用程序等)。

2. Ship(运输)

一句话,快乐的搬运,快乐的"装卸",大家都说搬家累,可是Docker却乐此不疲。这个理念是精髓哦。

3. Run(运行)

一句话,选择了新"家"后,Docker立即开锅掌勺,愉快的干活了。不用关注天气,不用查看导航,更不用花钱。可谓一举多得,所以人见人爱。

且看上图,这是Docker的核心运行机制。基于OS构建自己的Docker内循环,从镜像到容器,再到各种应用,各行其是。总而言之,有章可循不犯错。

这里看几个关键术语:

术语 解释
镜像(Image) 可理解为一个root文件系统,比如一个操作系统、一个nginx等。
容器(Container) 镜像启动后就是一个容器,一个镜像可启动多次,意味着可创建多个容器。
仓库(Repository) 镜像管理中心,可以是公共的,也可以私有化。
Docker 客户端 用于和Docker主机进程交互的客户端工具。比如docker命令行或sdk工具。
Docker 主机 用于执行Docker守护进程或容器的资源。

Q3:如何做

掌握了基本的概念后,可以通过下图进行更进一步的理解。简单讲是这么一个步骤:

1. 创建Docker主机

实现对镜像的Pull,Run、Stop、Delete等操作。建立守护进程,与外部交互。

2. 创建和使用镜像

简单打个比喻,镜像是Docker的"水源"。离开了镜像,Docker就会枯竭,无用武之地。我们可以创建镜像(生产过程),也可以获取镜像(消费过程)。

这里的操作,均指向一个仓库,即Docker仓库,当然可以是public,也可以是private。

3. 与Docker主机交互

我们可以借助docker命令行或sdk工具,与Docker主机建立联系。当然是通过守护进程(Docker daemon)完成一系列动作和指令。比如build、pull、run等命令。


结语

虚拟化没有终点,Docker遂应时而生,因时而变。为什么它会引人注目,当然离不开它的"轻"和"灵"。试想,一艘大船,如何使用才能高效?标准化打包是核心思路,快速的装卸也是胜利之钥。那么,Docker正是依靠此思想茁壮成长。它带来了云计算的蓬勃发展,也促进了互联网向更深、更广、更高的舞台前进。

最后一句话分享:

云原生,从来不是一个口号,更多是一个使命、一种发展的必由之路。


精彩回顾


相关推荐
修己xj6 小时前
在 AMD 机器上拉取 ARM 架构 Docker 镜像
docker
分布式存储与RustFS7 小时前
OpenSearch 的索引快照别只留本地:用 repository-s3 存进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
瑞克-桑切斯8 小时前
docker Harbor 单机部署手册
大数据·运维·elasticsearch·docker·容器
say_fall9 小时前
【AI大模型】MCP 模型上下文协议:客户端-服务器架构、JSON-RPC 消息与能力协商、工具发现与调用链路、与函数调用的分工
服务器·人工智能·架构
wzq11_6669 小时前
Kubernetes集群——存储管理
云原生·容器·kubernetes
孔令飞9 小时前
企业智能化升级:智能体平台设计和实现
云原生·go·ai编程
Decay__10 小时前
14_MySQL 高可用与容灾架构 —— MGR / InnoDB Cluster / Keepalived+VIP / 双主 / 读写分离 / 两地三中心
运维·数据库·sql·mysql·架构
猿人谷10 小时前
Surrogate Model:让进化算法学会“预测”,为什么它正在成为智能优化的重要技术?
后端·算法·架构
Kari1111 小时前
企业级智能体平台怎么选:腾讯云ADP与其他主流技术路线的架构对比
架构·云计算·腾讯云
泯泷11 小时前
AI时代,中层还要替公司传多少次话?
人工智能·架构