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

B站影视 2024-12-05 17:18 2

摘要:Docker是云原生的直接推动者,也是云计算的重要组成,本篇我就重点来谈谈Docker架构@mikechen

Docker是云原生的直接推动者,也是云计算的重要组成,本篇我就重点来谈谈Docker架构@mikechen

本文作者:陈睿|mikechen

文章来源:mikechen.cc

Docker

Docker作为一款流行的容器化技术,已成为现代软件开发、和部署流程中不可或缺的一部分。

Docker,其高效、轻量、可移植。。。等特性,彻底改变了应用程序的构建、分发和运行方式。

Docker架构

Docker架构有三个核心组件,如下图所示:

1.Docker镜像

Docker镜像,是Docker的核心构建块,它是一个只读的模板。

Docker镜像,包含了:运行应用程序所需的一切:操作系统、运行时环境、库、代码、配置文件...等。

镜像是创建容器的基础,容器从镜像加载内容。

如下图所示:

Docker镜像,可以被视为一个快照,它记录了某个特定时刻应用程序的状态。

一个镜像可以基于另一个镜像构建,形成层层叠加的镜像层,这使得镜像构建高效且节省存储空间。

Docker 的镜像、和容器,采用分层结构存储,通过 UnionFS 实现。

并且,Docker 镜像只读,多个镜像层...可以共享。

Docker仓库

Docker仓库,英文为:”Docker Registry“,是一个存储、和分发Docker镜像的服务。

Docker Hub是一个公共的镜像仓库,类似于GitHub用于代码,它存储了大量的预构建镜像,方便用户下载和使用。

用户也可以将自己构建的镜像推送到Docker Hub,与他人共享。

用户通过docker run命令创建容器,Docker Engine会从镜像仓库中找到相应的镜像,并基于该镜像创建一个新的容器。

这个过程包含创建容器文件系统、分配资源等操作。

Docker容器

容器 (Container), 容器是镜像的运行实例,它是一个隔离的运行环境。

Docker容器技术本质上:是一种资源隔离和控制的技术,它借鉴了沙盒的理念,将应用程序、及其依赖封装在一个独立的环境中。

Docker容器,可以简单地将它类比为一个集装箱(Container),如下图所示:

Docker容器,用来打包/和隔离应用程序的运行环境,使得它可以在不同的系统上实现一致的运行。

Docker容器,通过操作系统的内核功能(如: Linux 的 cgroups 、和 namespaces)。

命名空间:为容器提供了隔离的视图,包括:进程命名空间 (PID Namespace)、网络命名空间 (Net Namespace)、用户命名空间 (User Namespace)、挂载命名空间 (Mount Namespace) 和 IPC 命名空间 (IPC Namespace)...等等。

每个命名空间都为容器提供了一个独立的资源视图,例如:容器中的进程ID在宿主机的视角下是不同的。

控制组限制了容器的资源使用,包括:CPU、内存、IO...等。

通过cgroups,可以限制容器的资源使用上限,防止容器占用过多系统资源,从而保障系统的稳定性。

确保每个容器只访问自己的资源,而不影响其他容器或主机系统。

并且,拥有自己的文件系统、网络配置和进程空间,但共享宿主机内核。

总之,Docker通过巧妙地利用Linux内核的特性,实现了轻量级、可移植、可扩展的容器化技术。

Docker,改变了软件开发和部署的方式,极大的提高了效率。

本文作者:陈睿|mikechen

文章来源:mikechen.cc

来源:晓加科技观

相关推荐