Docker architecture
分类:知识集锦 发布时间:2023/4/4 17:28:58

Docker 使用客户端-服务器架构,Docker 客户端与 Docker 守护进程对话,后者负责构建、运行和分发 Docker 容器的繁重工作。Docker 客户端和守护程序可以在同一系统上运行,或者您可以将 Docker 客户端连接到远程 Docker 守护程序。Docker客户端和守护进程通过UNIX套接字或网络接口使用REST API进行通信。另一个 Docker 客户端是 Docker Compose,它允许您使用由一组容器组成的应用程序。

 

The Docker daemon

Docker 守护进程 (dockerd) 监听 Docker API 请求并管理 Docker 对象,例如 images, containers, networks, and volumes。守护进程也可以通过与其他守护进程通信来管理Docker服务。

 

The Docker client

Docker客户端(docker)是许多Docker users与Docker交互的主要方式。当你使用 docker run 等命令时,客户端将这些命令发送给 dockerd,dockerd 执行它们,docker命令使用docker API。Docker客户端可以与多个守护进程通信。

 

Docker registries

Docker registry 存储 Docker images,Docker Hub是任何人都可以使用的一个 public registry,Docker被默认配置为在Docker Hub上查找 image,您甚至可以运行自己的 private registry。

当你使用docker pull或docker run命令时,你需要的 image 会从你配置的 registry 中 pull 下来。当你使用docker push命令时,你的image会被 push 到你配置的 registry 中。

 

Docker objects

当你使用Docker时,你是在创建和使用 images、containers、networks、volumes、plugins、and other objects。下面简要介绍下 images和containers。

 

images

image是一个 read-only template,其中包含创建 Docker 容器的说明。通常,一个 image基于另一个 image,并带有一些额外的定制。例如,您可以构建一个基于ubuntu映像的映像,但是要安装Apache web服务器和您的应用程序,以及运行应用程序所需的配置细节。


您可以创建自己的images,也可以只使用其他人创建并发布在 registry 中的 images。


要构建自己的image,需要创建一个Dockerfile,Docker 为用户自己定义镜像提供了一个叫做 Dockerfile 的文件,在这个 Dockerfile 文件里,你可以使用简单的语法定义创建和运行自己镜像所需要的步骤。

Dockerfile 中的每条指令都会在 image 中创建 a layer,当您更改 Dockerfile 并重建 image时,仅重建那些已更改的 layers。与其他虚拟化技术相比,这是使 image 如此轻量、小巧和快速的部分原因。

 

Containers

容器是 image 的可运行实例。您可以使用Docker API或CLI创建、启动、停止、移动或删除容器。您可以将容器连接到一个或多个网络,将存储附加到它,甚至可以根据其当前状态创建新映像。

默认情况下,一个容器与其他容器及其主机的隔离相对较好。您可以控制容器的网络、存储或其他底层子系统与其他容器或主机的隔离程度,提供与主机和其他容器的轻度隔离。

容器由其 image 以及在创建或启动它时提供给它的任何配置选项定义。

 

容器是一种跨本地和云中的不同环境打包和运行 Windows 和 Linux 应用程序的技术。 容器提供一个轻型隔离环境,使应用更易于开发、部署和管理。 容器可以快速启动和停止,因此适用于需要快速适应不断变化的需求的应用。 容器的轻型性质也使得它们成为一种有用的工具,可以提高基础结构的密度和利用率。

体验创新云技术带来核心业务效率显著提升
立即预约,加速企业数字化转型进程
Copyright ⓒ 2022 苏州博纳讯动软件有限公司 国徽 苏ICP备13004761号 法律声明及隐私政策