• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

s589

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

23593246陈晓微(docker构架与原理的理解)

Docker 是一种开源的容器化平台,以下是对其架构与原理的理解:
Docker 架构
镜像(Image):镜像相当于一个模板,它包含了运行一个容器所需的所有文件系统、配置信息和依赖项。镜像是只读的,多个容器可以基于同一个镜像创建。例如,有一个包含了 Python 运行环境和一个 Flask 应用的镜像,基于此镜像可以创建多个运行该 Flask 应用的容器。
容器(Container):容器是镜像的运行实例。它是一个独立的、可运行的软件包,包含了应用程序及其所有依赖项,运行在宿主操作系统之上,但与宿主机的其他部分以及其他容器相互隔离。容器可以被启动、停止、删除,每个容器都有自己独立的文件系统、网络空间和进程空间等。
仓库(Registry):用于存储和管理镜像的地方。可以分为公共仓库(如 Docker Hub)和私有仓库。开发人员可以将自己创建的镜像推送到仓库中,也可以从仓库中拉取所需的镜像到本地使用。
Docker 原理
Namespace(命名空间):通过 Namespace 技术为容器提供隔离的运行环境。例如,PID Namespace 使得每个容器都有自己独立的进程编号空间,容器内的进程看不到容器外的进程;Mount Namespace 让容器有自己独立的文件系统挂载点,容器内对文件系统的操作不会影响到宿主机和其他容器。
Cgroups(控制组):主要用于限制容器对系统资源(如 CPU、内存、磁盘 I/O 等)的使用。通过 Cgroups,可以为每个容器分配特定的资源配额,确保容器之间不会因为资源竞争而影响彼此的运行。例如,可以限制某个容器只能使用宿主机 20% 的 CPU 资源和 1GB 的内存。
Union File System(联合文件系统):允许将多个不同的文件系统层叠加在一起,形成一个统一的文件系统视图。在 Docker 中,镜像的每一层都是一个只读的文件系统层,而容器运行时会在镜像层之上添加一个可写的层,用于存储容器运行时产生的临时数据和对文件系统的修改。
通过这些架构和原理,Docker 实现了高效、便捷的容器化应用部署和管理,使得应用能够在不同的环境中快速、稳定地运行,并且具有良好的可移植性和可扩展性。

posted on 2025-03-25 19:36  ufdghfdgyffy  阅读(55)  评论(1)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3