【容器】容器平台初探 - k8s上承载应用的组件docker

发布于:2025-07-02 ⋅ 阅读:(21) ⋅ 点赞:(0)

目录

一、什么是Docker

二、为什么要使用Docker

三、虚拟机与容器的区别

四、Docker运行架构

五、Docker镜像分层架构

六、使用Docker


一、什么是Docker

        docker是基于Go语言实现的云开源项目,诞生于2013年初,最初的发起者是DotCloud公司。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。

        docker是利用一个更高层次的控制工具,对进程进行封装隔离,是属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

Linux Containers = Namespace + Cgroup

  1. Namespace:命名空间,主要做访问隔离
  2. Cgroup:是control group的简称,又称为控制组,它主要是做资源控制

二、为什么要使用Docker

  1. 更快速的交付和部署:开发人员可以使用镜像来快速构建一套标准的开发环境;开发、测试、运维人员可以直接使用相同环境来部署代码。
  2. 更高效的资源利用:Docker是内核级的虚拟化,启动速度更快,消耗资源更少。
  3. 更轻松的迁移和扩展:Docker容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云等。
  4. 更简单的更新管理:Docker所有修改都以增量的方式进行分发和更新,从而更容易的实现自动化。

三、虚拟机与容器的区别

容器没有传统虚拟化中的Hypervisor层,它是基于容器技术的轻量级虚拟化,相对于传统的虚拟化技术,省去了Hypervisor层的开销。

传统虚拟化中Hypervisor层的作用:

  1. 资源虚拟化及分配:Hypervisor层在物理硬件和操作系统之间构建虚拟化层,将物理资源(CPU、内存、磁盘、网络等)抽象为虚拟资源,并动态分配给多个虚拟机实例。启动时,Hypervisor会为每个虚拟机加载操作系统并分配独立资源,确保多工作负载并行运行。
  2. 隔离与安全管控:Hypervisor强制虚拟机之间的资源隔离,防止相互干扰或越权访问。常见的分成两种类型:

         · 裸金属型Hypervisor - 直接控制硬件,通过特权指令捕获和调度机制保障虚拟机安全;

         · 托管型Hypervisor - 依赖主机操作系统实现隔离,但性能开销较高。

此外,Hypervisor还提供故障监控和迁移能力,增强系统可靠性。

特性

容器

虚拟机

启动速度

秒级

分钟级

硬盘使用

一般MB

一般GB

性能

接近原生

弱于

系统支持量

单机支持上百容器

一般几十个

隔离性

安全隔离

完全隔离

四、Docker运行架构

  1. Docker Image:镜像是Docker容器的基石,容器基于镜像启动和运行,镜像就好比容器的源代码,保存了用于启动容器的各种条件。类似于虚拟机的镜像。
  2. Docker Container:容器通过镜像来启动,Docker的容器是Docker的执行来源,容器中可以运行客户的一个或多个进程,如果说镜像是Docker生命周期的构建和打包阶段,那么容器则是启动和执行阶段。
  3. Docker Registry仓库:Docker用仓库来保存用户构建的镜像,仓库分为公有和私有两种。

运行架构图

五、Docker镜像分层架构

Docker镜像采用一种分层堆叠的运作方式:

  1. 采用overlay2的文件系统
  2. 镜像其实是由多个镜像堆叠而成的
  3. 建立镜像的同时,每个步骤都会建立一层镜像

六、使用Docker

运维、开发人员必须掌握如何管理容器的生命周期、管理镜像的生命周期和掌握Dockerfile的编写语法


网站公告

今日签到

点亮在社区的每一天
去签到