当前位置: 首页 > news >正文

docker核心概念

一: 容器介绍

简介

1.0 云计算三层架构:

IaaS:基础设施即服务(毛坯房)

  • 云厂商给虚拟机 / ECS 服务器。你自己装系统、搭环境、部署代码

PaaS:平台即服务(精装拎包入住,适合开发)

  • 底层硬件 + 操作系统 + 运行时全部托管。

    开发者只管业务代码。

    典型产品:云数据库 RDS、Redis、函数计算、Heroku、Cloud Foundry、K8s 平台

SaaS:软件即服务(酒店)

  • 直接使用成品软件,不用开发。

    例子:钉钉、腾讯文档、企业微信

2.0 容器的简介:PaaS理想状态

  • 容器是一种沙盒技术。沙盒类似于“集装箱”,是把我们的应用装起来的技术;
  • 因此应用与应用之间有了边界就不会相互打扰;
  • 被集装箱装起来的应用也可以搬来搬去

docker介绍

1.0 docker简史:

  • 和虚拟机一样,容器技术也是一种资源隔离的虚拟化技术。

  • 爆发阶段:2013 年推出到现在为止最为流行和使用最广泛的容器 Docker(Docker 发布),相比其他早期的容器技术,Docker 引入了一整套容器管理的生态系统,包括分层的镜像模型,容器注册库,友好的 Rest API。

  • 2015年:OCI(Open Container Initiative)成立,制定了容器镜像标准(OCI Image Spec) 和容器运行时标准(OCI Runtime Spec),打破 Docker 的垄断,让容器技术走向标准化;同时 Kubernetes(K8s)发布,解决了容器的编排、调度、集群管理问题,成为容器集群的事实标准。

​ 注意:OCI是开放容器倡议,目标:镜像一次构建,任意符合 OCI 标准的工具都能运行,打破厂商锁定。

2.0 docker需求成因:

  • 平滑迁移:应用从集中式部署转向分布式部署;不同环境(虚拟机,公有云,私有云)里面的应用可能会随时迁移;docker的出现是让程序到哪里都可以运行,不用针对不同环境修改配置。
  • 类比于运输业:docker采用集装箱思想;Docker 可以将任何应用和他的依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。这样容器就可以跑在任何环境中,

3.0 docker和传统模式区别:

部署模式区别:

  • 传统:先安装,再配置,最后再运行

  • Docker部署模式:复制后直接运行

容器和虚拟机区别:

  • docker运行速度快:键盘回车多快,容器运行就有多快
  • 容器用宿主机内核,而虚拟机使用独立内核
  • 容器是一个进程,而虚拟机不是
  • 容器是进程之间的隔离(容器之间共用宿主机内核);虚拟机是所有资源的完全隔离;

4.0 容器应用场景:

  • 所有硬件:它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用
  • 统一开发环境:Docker给应用提供了一个从开发到上线均一致的环境
  • 提高开发效率:开发者希望本地环境和线上一致,又希望环境好搭建。Docker 轻量化,低配电脑也能同时运行大量服务,兼顾环境一致性与资源开销问题。
  • 隔离应用
  • 快速部署

虚拟化和容器

背景:

  • 硬件辅助虚拟化(虚机)解决了性能和兼容问题,但 “重虚拟化” 的弊端逐渐显现:每个虚机的独立内核导致资源开销大、启动速度慢(分钟级)、镜像体积大(GB 级)、资源调度效率低。

  • 随着云计算、微服务、DevOps 的发展,企业对轻量、快速、高效、可移植的虚拟化需求激增,容器作为操作系统级虚拟化技术,应运而生并快速成为主流。

核心原理:

  • Docker通过内核的隔离特性(Linux 的 cgroups+namespaces,Windows 的 Hyper-V 隔离 / WSL)实现进程级的资源隔离与限制。
  • 所有容器共享宿主机的 OS 内核,容器本质是被隔离的、独立的进程组,虚拟化层(容器引擎)仅为容器分配独立的网络、进程、文件系统、用户等命名空间,并通过 cgroups 限制其 CPU、内存、磁盘、网络等资源的使用上限。

docker核心技术:

  • Namespaces(命名空间):实现隔离性,为每个容器创建独立的 “系统环境”,容器内的进程无法看到宿主机和其他容器的资源,包括:PID(进程号)、NET(网络)、MNT(文件系统)、IPC(进程通信)、UTS(主机名)、USER(用户);
  • cgroups(控制组):实现资源限制,对容器的 CPU、内存、磁盘 IO、网络带宽等资源做精细化分配和限制,防止单个容器占用所有宿主机资源;
  • 联合文件系统(UnionFS):如 AUFS、Overlay2,实现容器镜像的分层存储,让容器镜像体积大幅减小(MB 级),并支持镜像的快速构建、推送和拉取;

二: Docker核心概念

docker系统

Docker系统有两个程序:Docker服务端和Docker客户端

服务端:

  • 是一个服务进程,管理着所有的容器。
  • docker engine

客户端:

  • 扮演着docker服务端的远程控制器,可以用来控制docker的服务端进程

docker核心组件

1.0 docker仓库:

  • 用来保存镜像,有私有和公有区分

2.0 docker镜像:

  • Docker镜像是容器运行时的只读模版
  • 每一镜像由一系列层组成;Docker 使用 UnionFS 来将这些层联合到单独的镜像中;UnionFS 允许独立文件系统中的文件和文件夹(称之为分支)被透明覆盖,形成一个单独连贯的文件系统
  • 升级程序到新的版本,一个新的层会被创建,因此不需要重新建立镜像。层使得分发 Docker 镜像变得简单和快速
  • 每一个镜像都可能依赖于由一个或多个下层的组成的另一个镜像。下层那个镜像是上层镜像的父镜像

3.0 docker容器:

  • 每一个 Docker 容器都是从 Docker 镜像创建的
  • Docker 容器和文件夹很类似,一个Docker容器包含了所有的某个应用运行所需要的环境
  • 每一个 Docker 容器都是独立和安全的应用平台,Docker 容器是 Docker 的运行部分

4.0 镜像和容器的区别:

  • Docker容器是在镜像层上面加上了一个可写层;并且可写层有运行在cpu上面的进程,因此有运行态和退出态
  • 对容器的变更是写入到容器的文件系统的(可写层),而不是写入到Docker镜像中的
  • 我们可以用同一个镜像启动多个Docker容器,这些容器启动后都是活动的,彼此还是相互隔离的。我们对其中一个容器所做的变更只会局限于那个容器本身
  • 如果对容器的底层镜像进行修改,那么当前正在运行的容器是不受影响的,不会发生自动更新现象

5.0 名字空间:

namespace(名字空间)是 Linux 内核一个强大的特性。每个容器都有自己单独的名字空间,运行在其中的应用都像是在独立的操作系统中运行一样。名字空间保证了容器之间彼此互不影响。

  • 容器 = 进程 + 一组 Namespace + Cgroups
  • Namespace 的作用:实现容器之间的资源隔离
  • 让每个容器看起来像独立的操作系统,互不干扰

Linux Namespace 是实现容器资源隔离的核心技术,Docker 基于 LXC,依靠 6 种命名空间实现容器隔离,系统时钟无法被 Namespace 隔离

  1. pid 名字空间

    隔离进程 PID;不同命名空间可存在相同 PID,实现进程隔离,支持容器嵌套。

  2. net 名字空间

    隔离网络;拥有独立网卡、IP、路由表、/proc/net;Docker 默认使用 veth pair 连接容器与宿主机网桥 docker0。

  3. ipc 名字空间

    隔离进程间通信;容器内信号量、消息队列、共享内存、socket 等 IPC 资源拥有独立 ID,容器间 IPC 相互隔离。

  4. mnt 名字空间

    隔离文件系统挂载;各容器拥有独立目录视图,比 chroot 更强,独立挂载点列表。

  5. uts 名字空间

    隔离主机名与域名;容器可以设置独立 hostname,网络层面看起来是独立节点。

  6. user 名字空间

    隔离用户 / 组 ID;容器内用户 ID 和宿主机可以不一致,容器内可使用自身独立用户,不和宿主机用户混用。

http://www.jsqmd.com/news/1233301/

相关文章:

  • HarmonyOS7 旋转手势:RotationGesture 实现双指旋转组件
  • 塑身衣不会卷边哪家好? - 中媒介
  • 找冷链锁鲜靠谱的烤小肠批发商 - 中媒介
  • 推荐洗衣液贴牌全流程定制服务商 - 中媒介
  • 操作系统不支持压缩包内文件搜索怎么办?
  • LangChain框架实战:大语言模型应用开发指南
  • SolidWorks建模到3D打印:解决外壳装配误差的DFM实战指南
  • HarmonyOS7 滑动手势:SwipeGesture 检测快速滑动方向
  • 沈阳哪里能买到安全的有机全脂羊乳粉? - 中媒介
  • 白酒老酒库存足哪家效果好? - 中媒介
  • 瓜子哪家干净卫生? - 中媒介
  • 湖南工地专用内墙涂料抗裂效果好不好 - 中媒介
  • 2026宠物小程序开发十大公司测评:洗护预约、用品商城与会员怎么选?含零代码SAAS、AI编程、源码定制
  • LangChain:大语言模型集成框架的核心技术与应用
  • PyTorch 2框架核心优化与实战指南
  • Windows右键菜单混乱不堪?3个步骤让它重获新生
  • AI工具如何革新企业级应用设计流程
  • 婴儿游泳洗澡服务哪家专业安全 - 中媒介
  • 从入门到高阶:2026电商美工精英班,PS、C4D、AI、PR全掌握
  • 2026年7月行业内专业的V型混合机实力厂家推荐,真空耙式干燥机/振动流化床干燥机/双锥混合机,V型混合机直销工厂选哪家 - 品牌推荐师
  • MyBatis-Plus高阶用法与Spring Boot3实战技巧
  • Java 17性能优化:ZGC、JIT与向量API实战解析
  • 深圳特色速冻食品批发 - 中媒介
  • Shiny for Python:构建交互式数据可视化应用指南
  • 运城市闻喜县2026最新黄金回收门店及联系方式指南 黄金回收白银回收铂金回收店铺TOP5排行榜 - 大熊猫898989
  • Structured Pruning of Large Language Models 解读
  • ML工程师的组织影响力:从模型交付到业务闭环
  • 周口市淮阳县2026最新黄金回收门店及联系方式指南 黄金回收白银回收铂金回收店铺TOP5排行榜 - 盛世金银回收
  • Sqribble:面向结构化文档的云原生操作系统
  • MiniMax M3预留吞吐量服务:生产环境部署与优化指南