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

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

Docker是云原生核心,也是大型架构必备技能,今天就重点详解Docker架构原理@mikechen

Docker

Docker通过容器技术,帮助开发者人员构建、打包、发布和运行应用程序。

相较传统虚拟化技术,Docker 容器更加轻量级、启动更快,并且更易于环境隔离与迁移。

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

虚拟机提供完整的硬件和操作系统虚拟化,提供高度隔离,但资源占用较高。

Docker 在操作系统层进行虚拟化,资源占用低,启动速度快,可移植性强,适用于微服务和 CI/CD 等场景。

 

Docker架构原理

Docker 架构,主要包含三大核心组件:

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

Docker镜像

Docker 镜像是一个只读的模板,它包含了运行 Docker 容器所需的所有文件、库、代码和运行时环境。

可以把镜像看作是一个“蓝图”,用于创建 Docker 容器。

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

镜像是容器的基础,使用 docker build 命令通过 Dockerfile 创建。

docker build -t myapp:1.0 .
docker images

镜像采用分层存储的方式,每一层都是只读的,这使得镜像的构建和分发非常高效。

 

Docker仓库

Docker 仓库:是用于存储、和分发 Docker 镜像的中央仓库。

主要包含两类:公共仓库、和私有仓库。

公共仓库,例如 Docker Hub,任何人都可以访问和使用。

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

私有仓库:企业或组织可以搭建自己的私有仓库,用于存储和管理内部使用的镜像。

 

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

容器是镜像的运行实例,可读写且隔离运行。

容器是轻量级的,启动速度快。

容器之间相互隔离,保证了应用程序的安全性。

容器的生命周期可以被管理,可以被创建、启动、停止、重启和删除。

这三大组件协同工作,构成 Docker 的基本工作流程。

mikechen

mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复架构即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法