摘要:Docker是云原生核心,也是大型架构必备技能,今天就重点详解docker架构原理@mikechen
大家好,我是mikechen。
Docker是云原生核心,也是大型架构必备技能,今天就重点详解docker架构原理@mikechen
本文作者:陈睿|mikechen
文章来源:mikechen.cc
Docker
Docker通过容器技术,帮助开发者人员构建、打包、发布和运行应用程序。
相较传统虚拟化技术,Docker 容器更加轻量级、启动更快,并且更易于环境隔离与迁移。
虚拟机提供完整的硬件和操作系统虚拟化,提供高度隔离,但资源占用较高。
Docker 在操作系统层进行虚拟化,资源占用低,启动速度快,可移植性强,适用于微服务和 CI/CD 等场景。
Docker架构原理
Docker 架构,主要包含三大核心组件:
Docker镜像
Docker 镜像是一个只读的模板,它包含了运行 Docker 容器所需的所有文件、库、代码和运行时环境。
可以把镜像看作是一个“蓝图”,用于创建 Docker 容器。
镜像是容器的基础,使用 docker build 命令通过 Dockerfile 创建。
docker build -t myapp:1.0 .docker images镜像采用分层存储的方式,每一层都是只读的,这使得镜像的构建和分发非常高效。
Docker仓库
Docker 仓库:是用于存储、和分发 Docker 镜像的中央仓库。
主要包含两类:公共仓库、和私有仓库。
公共仓库,例如 Docker Hub,任何人都可以访问和使用。
私有仓库:企业或组织可以搭建自己的私有仓库,用于存储和管理内部使用的镜像。
Docker容器
Docker 容器:是从镜像创建的一个轻量级、可移植、自包含的运行环境。
它封装了应用程序运行所需的一切:代码、运行时、库、配置文件等。
容器本质上是进程,但通过 Linux Namespace + Cgroups 实现了资源的隔离与限制,因此表现得像一个独立的操作系统环境。
Namespaces
Namespace 是 Linux 内核提供的一种机制,用于将系统资源划分为相互隔离的区域。
每个容器看到的都是“自己”的资源副本,看不到其他容器或宿主机的资源。
Cgroups
Cgroups(Control Groups)是 Linux 内核的一项功能,用于对进程组分配、限制、监控和回收资源。
/sys/fs/Cgroup/├── cpu/│ ├── docker/xxx → 某容器对应的 Cgroup 目录├── memory/│ ├── docker/xxx├── blkio/│ ├── docker/xxx容器是镜像的运行实例,可读写且隔离运行。
容器是轻量级的,启动速度快。
容器之间相互隔离,保证了应用程序的安全性。
容器的生命周期可以被管理,可以被创建、启动、停止、重启和删除。
这三大组件协同工作,构成 Docker 的基本工作流程。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
来源:小林论科技