微服务实战系列之玩转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正是依靠此思想茁壮成长。它带来了云计算的蓬勃发展,也促进了互联网向更深、更广、更高的舞台前进。
最后一句话分享:
云原生,从来不是一个口号,更多是一个使命、一种发展的必由之路。
精彩回顾
-
微服务实战系列之云原生
-
微服务实战系列之Filter
-
微服务实战系列之API加密
-
微服务实战系列之Dubbo(下)
-
微服务实战系列之Dubbo(上)
-
微服务实战系列之ZooKeeper(实践篇)
-
微服务实战系列之ZooKeeper(下)
-
微服务实战系列之ZooKeeper(中)
-
微服务实战系列之ZooKeeper(上)
-
微服务实战系列之MQ
-
微服务实战系列之通信
-
微服务实战系列之J2Cache
-
微服务实战系列之Cache(技巧篇)
-
微服务实战系列之MemCache
-
微服务实战系列之EhCache
-
微服务实战系列之Redis
-
微服务实战系列之Cache
-
微服务实战系列之Nginx(技巧篇)
-
微服务实战系列之Nginx
-
微服务实战系列之Feign
-
微服务实战系列之Sentinel
-
微服务实战系列之Token
-
微服务实战系列之Nacos
-
微服务实战系列之Gateway
-
微服务实战系列之加密RSA
-
微服务实战系列之签名Sign

相关文章:
微服务实战系列之玩转Docker(一)
前言 话说计算机的“小型化”发展,历经了大型机、中型机直至微型机,贯穿了整个20世纪的下半叶。同样,伴随着计算机的各个发展阶段,如何做到“资源共享、资源节约”,也一直是一代又一代计算机人的不懈追求和历史使命。今…...
Java中常见的语法糖
文章目录 概览泛型增强for循环自动装箱与拆箱字符串拼接枚举类型可变参数内部类try-with-resourcesLambda表达式 概览 语法糖是指编程语言中的一种语法结构,它们并不提供新的功能,而是为了让代码更易读、更易写而设计的。语法糖使得某些常见的编程模式或…...
数据库使用SSL加密连接
简介 数据库开通SSL加密连接是确保数据传输过程中安全性的关键措施,它通过加密数据、验证服务器身份、保护敏感信息、维护数据完整性和可靠性,同时满足行业标准和法规要求,进而提升用户体验和信任度,为企业的数据安全和业务连续性…...
华为OD算法题汇总
60、计算网络信号 题目 网络信号经过传递会逐层衰减,且遇到阻隔物无法直接穿透,在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n],二维数组代表网格地图 array[i][j]0,代表i行j列是空旷位置 a…...
服务器的rabbitmq的guest账号登不进去
要配置 RabbitMQ 允许 guest 账号从非 localhost 地址登录,需要执行以下步骤: 编辑 RabbitMQ 配置文件: 打开 RabbitMQ 的配置文件,通常位于 /etc/rabbitmq/rabbitmq.conf 或者 /etc/rabbitmq/rabbitmq-env.conf。如果这些文件不存…...
决策树(ID3,C4.5,C5.0,CART算法)以及条件推理决策树R语言实现
### 10.2.1 ID3算法基本原理 ### mtcars2 <- within(mtcars[,c(cyl,vs,am,gear)], {am <- factor(am, labels c("automatic", "manual"))vs <- factor(vs, labels c("V", "S"))cyl <- ordered(cyl)gear <- ordered…...
文心一言《使用手册》,文心一言怎么用?
一、认识文心一言 (一)什么是文心一言 文心一言是百度研发的 人工智能大语言模型产品,能够通过上一句话,预测生成下一段话。 任何人都可以通过输入【指令】和文心一言进行对话互动、提出问题或要求,让文心一言高效地…...
Spring Boot集成qwen:0.5b实现对话功能
1.什么是qwen:0.5b? 模型介绍: Qwen1.5是阿里云推出的一系列大型语言模型。 Qwen是阿里云推出的一系列基于Transformer的大型语言模型,在大量数据(包括网页文本、书籍、代码等)进行了预训练。 硬件要求:…...
GreenDao实现原理
GreenDao 是一款针对 Android 平台优化的轻量级对象关系映射 (ORM) 框架,它将 Java 对象映射到 SQLite 数据库,以简化数据持久化操作。GreenDao 的主要优点包括高性能、低内存占用、易于使用以及对数据库加密的支持。 以下是基于源码的 GreenDao 实现原…...
Perl语言之数组
Perl数组可以存储多个标量,并且标量数据类型可以不同。 数组变量以开头。访问与定义格式如下: #! /usr/bin/perl arr("asdfasd",2,23.56,a); print "输出所有:arr\n"; print "arr[0]$arr[0]\n"; #输出指定下标 print…...
写材料word和PPT
一、WORD 1、写内容 2、参考GPT改:内容、逻辑结构、语句 3、查标题及其标号 4、修改格式:仿宋 、正文统一为小三,标题三号,1.5倍行距,加页码。 采用VBA代码自动修改,不知为何标题无法修改字体 Sub 插入页…...
Centos---命令详解 vi 系统服务 网络
目录 一、CentOS vi命令详解 二、CentOS系统服务命令 三、CentOS权限管理命令: 四、CentOS网络管理命令介绍: 一、CentOS vi命令详解 Vi是一款强大的文本编辑器,在CentOS中广泛使用。以下是Vi编辑器的一些常用命令: 1. 打开…...
【.NET全栈】ASP.NET开发web应用——ASP.NET中的样式、主题和母版页
文章目录 前言一、在ASP.NET中应用CSS样式1、创建CSS样式(1)内联样式(2)内部样式表(3)外部样式表 2、应用CSS样式(1)菜鸟教程-简单例子(2)菜鸟教程-用户界面&…...
[ruby on rails]部署时候产生ActiveRecord::PreparedStatementCacheExpired错误的原因及解决方法
一、问题: 有时在 Postgres 上部署 Rails 应用程序时,可能会看到 ActiveRecord::PreparedStatementCacheExpired 错误。仅当在部署中运行迁移时才会发生这种情况。发生这种情况是因为 Rails 利用 Postgres 的缓存准备语句(PreparedStatementCache)功能来…...
函数传值面试题
let a {name: aa };function fun1(a) {a []; // 这里创建了一个新的局部变量a,它是一个空数组// a.name "芜湖" }fun1(a); // 调用fun1,传入a的引用副本 console.log(a); // 输出:{ name: aa }在 JavaScript 中,当你…...
redis笔记2
redis是用c语言写的,放不频繁更新的数据(用户数据。课程数据) Redis 中,"穿透"通常指的是缓存穿透(Cache Penetration)问题,这是指一种恶意或非法请求直接绕过缓存层,直接访问数据库或…...
Kafka(四) Consumer消费者
一,基础知识 1,消费者与消费组 每个消费者都有对应的消费组,不同消费组之间互不影响。 Partition的消息只能被一个消费组中的一个消费者所消费, 但Partition也可能被再平衡分配给新的消费者。 一个Topic的不同Partition会根据分配…...
前端路由手写Hash和History两种模式
文章目录 1. Hash模式:简洁而广泛适用2. History模式:更自然的用户体验3. 结论 在现代Web开发中,单页面应用(Single Page Application,简称SPA)因其流畅的用户体验和高效的页面交互能力而备受青睐。前端路由…...
Redis的单线程讲解与指令学习
目录 一.Redis的命令 二.数据类型 三.Redis的key的过期策略如何实现? 四.Redis为什么是单线程的 五.String有关的命令 Redis的学习专栏:http://t.csdnimg.cn/a8cvV 一.Redis的命令 两个基本命令 在Redis当中,有两个基本命令࿱…...
为什么MySQL会选择B+树作为索引
为什么MySQL会选择B树作为索引 在数据库管理系统中,索引是提升查询效率的关键技术之一。MySQL作为广泛使用的关系型数据库管理系统,其核心存储引擎InnoDB选择B树作为其索引结构,这一选择背后蕴含了深刻的性能和存储效率考量。本文将简要介绍…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
