docker 系统架构

▶ docker使用的架构


Client docker 的客户端,通过 HTTP 与 docker deamon 来进行通讯,默认使用 Unix 域套接字来实现。

DOCKER_HOST 中的 Docker deamon 翻译为 Docker 守护进程,负责容器的创建、运行等,同时也负责镜像的构建存储。Docker 守护进程通过使用 docker daemon 启动。

Registry docker的镜像仓库,负责的是存储和发布镜像,默认的寄存服务是 Docker Hub,当然也能自己搭建自己的寄存服务。

当 客户端 开始输入如 docker pull 之类的请求之后,docker 守护程序就开始向 Registry 下载对应的镜像,当本地有镜像的时候就优先使用的是本地的镜像。

▶ 底层技术

Docker 使用 execution driver 执行驱动程序 来创建容器,这需要使用到 Linux 的两个核心功能 cgroupsNamespaces,另一个则是 Union File System 同一文件系统。

  • cgroups: 负责的是容器使用的资源,如 CPU 和 内存 的使用。

  • Namespace: 翻译为 命名空间,负责的是容器与容器之间的隔离,确保系统的其他部分与容器中的文件、主机名、用户、网络、进程等分开。

  • Union File System: 联合文件系统/联合挂载,联合文件系统的作用是允许多个文件系统进行叠加,表先出来就是单一的文件系统,[文件系统是控制数据存储和访问的系统],如果有两个文件的路径完全相同,那么最后挂载的文件会覆盖之前的文件。

▷ 联合文件系统:

联合文件系统可以实现一个挂载点同时挂载多个文件系统,将挂载点的原目录与被挂载的内容进行整合,使得最终可见的文件系统包含整合之后的各层文件和目录。

posted @ 2024-09-06 20:35  takenika  阅读(32)  评论(0)    收藏  举报