Docker工作原理详解(图文全面总结)

Docker工作原理详解(图文全面总结)-mikechen

Docker

Docker 是一个容器化平台,主要:实现应用、与环境的隔离,从而确保应用能够在不同的操作系统上保持一致性。

Docker工作原理详解(图文全面总结)-mikechen

Docker 容器,它通过:对计算机资源的隔离、与控制,为应用提供一个独立、安全的运行环境。

正因如此,Docker 容器,就像集装箱一样,可以将应用及其依赖打包在一起,并在不同的环境中保持一致。

 

Docker工作原理

Docker工作原理,如下图所示:

Docker工作原理详解(图文全面总结)-mikechen

Docker主要包含: Docker 镜像、Docker 容器 、和 Docker 仓库这三大组件。

Docker的这三个组件,共同构成了 Docker 的工作原理流程。

Docker镜像

Docker 镜像是一个独立、可移植的应用程序环境,类似于虚拟机快照。

Docker工作原理详解(图文全面总结)-mikechen

镜像是容器的构建基础,可以认为是一个“打包好的应用环境”。

Docker 镜像,具有层次结构,每一层代表了一次操作(如:安装软件、复制文件。。。等),并且可以复用,提升了存储和构建效率。

并且,每个镜像基于 Linux 文件系统,包含:一个完整的运行时环境,镜像可以分层构建,这使得 Docker 镜像具有高度的复用性。

 

Docker仓库

Docker 仓库,是用于存储/和分发 Docker 镜像的服务。

类似于代码版本控制系统,Docker 仓库用于集中管理镜像,使开发者可以轻松共享、和获取。

比如:大家经常使用的“Docker Hub:这是默认的公共仓库,提供了大量官方镜像。

Docker工作原理详解(图文全面总结)-mikechen

Docker 镜像,是通过 Dockerfile 构建的,构建完成的镜像,可以被发布到 Docker Hub 等仓库中,方便共享、和分发。

 

Docker容器

Docker 容器,是镜像的运行实例,提供了应用的隔离环境。

每个容器:都有独立的文件系统、网络、进程空间,可以避免不同应用之间的冲突,就类似“集装箱”。

如下图所示:

Docker工作原理详解(图文全面总结)-mikechen

Docker 使用 Linux 的 Namespace 、和 Cgroups 实现了轻量级的容器,性能开销低,启动速度快。

Namespaces

Namespaces ,是 Linux 提供的一种机制,用来创建进程隔离环境,让每个容器拥有自己独立的系统视图。

比如:包含有独立的进程空间、网络空间、和文件系统…空间等等。

Cgroups

Cgroups(Control Groups),是一种 Linux 内核特性,用来限制、统计和隔离进程的资源使用量。

Cgroups,开源控制组限制容器的资源使用量,包括: CPU、内存、磁盘 I/O 等,防止某个容器过度使用主机资源。

通过Namespaces 、和 Cgroups 来实现轻量级的容器,这使得 Docker 容器能够隔离进程。

并限制资源,提供类似虚拟机的功能,但占用资源更少、启动更快。

mikechen睿哥

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

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

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

评论交流
    说说你的看法