Docker架构原理详解(图文全面总结)

360影视 国产动漫 2025-04-17 01:08 2

摘要: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万字《阿里架构师进阶专题合集》里面。

来源:小林论科技

相关推荐