论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
分布式数据库
›
微服务实战系列之玩转Docker(三)
微服务实战系列之玩转Docker(三)
守听
金牌会员
|
2024-7-18 19:45:09
|
显示全部楼层
|
阅读模式
楼主
主题
982
|
帖子
982
|
积分
2946
前言
镜像(Image)作为Docker的“水源”,取之于它,用之于它。这对于立志成为运维管理的撒手锏——Docker而言,重要性不言而喻。
我们在捏造机时代(当然现在依然ing…),如何快速完成体系的迁移呢? 通常是Copy 一个VM。这个VM是“又笨又大”。难怪会被取代,我们总是盼望事半功倍,由于本能使然。
一、为什么选择Docker
任何一个出色的新产物诞生,总是能够在精确的时间,精确的场所,通过精确的方式完成它的历史级“表态”。
这里先给一张图:
在上篇文章中,博主对docker的特点做了简单总结:“轻”和“灵”。
1. 何谓轻
简单讲,不干涉他人“主权”,不侵占他人“资源”。在需要的时候,只需打个招呼,自然有人奉上门来。所以不用背负重量级的操纵体系(OS),不必携带庞大的数据(Database),这样就轻了,总算做到了“轻装上阵”。
2. 何谓灵
既已为轻,其灵自现。“胖子总羡慕瘦子的机灵,殊不知这个瘦子经历了多少酸楚苦辣”。曾经看过这样一个命题:
如何提高货车的装货量?
有些人可能说:塞满、塞满、塞满,无孔不入;
有些人可能说:分门别类,堆积起来,越高越好;
有些人可能说:全部打包;
当然以上发言均没有错,但是做到高效就困难了。这里,答案是把所有的货物装入一个尺度箱里,最后码放一起。
行文至此,博主不禁有所感言:
万物万事的兴衰大概都遵照了肯定的运行规律和演变逻辑,所以新老交替不可避免。在IT世界,追求价值,是我们永恒的目标。
通过上图,我们可以直观看到VM负重累累,而Docker则身轻如燕。
二、Docker引擎核心
1. 技能基座
1.1命名空间namespace
在Linux中,命名空间是一种容器隔离基础技能,。它能够把资源封装在不同的命名空间中实现资源隔离,进而达到容器隔离的目的。不同的命名空间有一套独有的体系资源。常见的命名空间包含以下六类:
命名空间用途及利用参数UTS隔离主机名和域名信息,使容器变为一个独立的节点,参数名:CLONE_NEWUTSIPC隔离进程间通讯,参数名:CLONE_NEWIPCNetwork隔离网络资源,参数名:CLONE_NEWNETPID隔离进程的ID,参数名:CLONE_NEWPIDMount隔离文件体系挂载点,参数名:CLONE_NEWNSUser隔离用户和组,参数名:CLONE_NEWUSER 当然,namespace技能是基于chroot实现的,关于这个点,各位盆友应该有所了解。
1.2控制组cgroups
cgoups是Control groups的简称,也是 Linux 内核的一个功能。用于限制、控制和审计进程组所利用的物理资源。Docker基于此实现资源隔离,各不相犯。
控制范围包罗:CPU、内存、磁盘 I/O 、网络带宽、设备访问、资源跟踪审计、条理化控制。
1.3联合文件体系UnionFS
UnionFS 是一种为 Linux 操纵体系设计的用于把多个文件体系“归并”到同一个挂载点的文件体系服务。对外看起来是一个团体,可以说有肯定的内聚的意图。直观一点,看图:
小结: 对外,docker实现了高内聚,屏蔽了差别,只显示一个团体;对内,每个容器都基于一个基础镜像完成新建和运行,存在版本的差别。
了解了docker的技能基座后,我们看看“项庄们”如何舞剑吧。
2. 三剑客(镜像-容器-仓库)
下图是Docker引擎三剑客的核心交互逻辑:
2.1 镜像Image
前面提到了Docker之所以出色,是由于镜像这个大功臣所赐予。镜像比如是“静止”的容器,所以它包含了容器所需的一些必要资源(根文件体系、程序文件、元数据、网络信息、用户组、命令入口等)。
2.2 容器Container
我们都说,容器是镜像的“运行态”,也就是一个经过写后的一个“镜像”实例。比如你需要创建一个最新的nginx镜像,则先准备一个基础镜像,然后完成相应的改造,形成新的镜像。那么该镜像则为当前镜像的latest版本,也就是一个新Tag。
所以Container并不是对镜像的直接构造,实在是经过一个“可写层”,对基础镜像完成改造。这里用到一个头脑,所谓“向上open, 向下close”。
2.3 仓库Repository
docker仓库一样平常有公有和私有之分。
公有仓库是Docker官方提供一个公共仓库,称为Docker Hub,是免费开放的。受困与网络条件,利用起来比较费劲,一样平常需要加快器。
私有仓库是用户本身搭建、管理和维护的Docker仓库。当然一样平常是企业自身或个人利用,不对外开放大概有偿开放。
结语
本文重要对docker的核心原理进行分析,从底层明白为什么docker能够胜任当前的发展需要。盼望各位有所劳绩,感谢恭维,欢迎一键三连,互相鼓励与学习!
精彩回首
微服务实战系列之玩转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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
守听
金牌会员
这个人很懒什么都没写!
楼主热帖
【网络编程】从零开始搭建一个开源博客 ...
Python学习:import的正确用法
Vulnhub靶机-Al-Web-1
【CSDN云VS腾讯云】要不然怎么说CSDN开 ...
jdbc如何连接sqlserver数据库呢? ...
报错building for iOS Simulator, but ...
TCP协议
面试官:BIO、NIO、AIO是什么,他们有 ...
通达OA,长途下令执行漏洞复现 ...
如何成为一名开发人员——第 3 部分: ...
标签云
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表