Docker基础知识
发布网友
发布时间:2024-10-04 16:03
我来回答
共1个回答
热心网友
时间:2024-11-23 12:11
Docker总体架构包含Docker daemon(守护进程)、Docker Client、Images(镜像)、Containers(容器)、Registries(仓库)。
Docker daemon(守护进程)负责监听Docker API请求,管理Docker对象,包括images、containers、networks和volumes。同时,守护进程与其他守护进程交互,管理Docker服务。Docker Client,作为用户与Docker交互的主要方式,通过docker命令与Docker daemon交互,执行如run、build、pull等命令。
Images(镜像)作为只读模板,包含创建容器的指令。镜像可基于其他镜像构建,增加定制化内容。构建镜像使用Dockerfile文件,其中每条指令生成镜像的一个层。Dockerfile语法简单,易于管理镜像构建过程。镜像轻便、小巧、快速,部分原因是其层叠结构。
Containers(容器)是镜像的可运行实例。容器通过Docker API和命令行管理,包括create、start、stop、move、delete操作。容器与其他容器及其宿主机隔离,默认情况下容器间网络隔离。容器由镜像和启动时的参数决定,删除容器时,容器中持久化存储的修改参数消失。
Registries(仓库)用于存储Docker镜像,Docker Hub是一个公用仓库,也是默认镜像仓库。执行docker pul、docker run命令时,Docker从配置的仓库地址拉取镜像。执行docker push时,Docker将镜像推送到指定的仓库。
Docker Daemon架构包括Docker Server(服务器端)和Docker Engine(运行引擎)。Docker Server接收Docker Client请求,新创建Goroutine处理请求。Docker Engine是运行核心模块,通过执行Job操纵和管理容器。Job是Docker架构中Engine内部最基本的工作执行单元。每项工作抽象为一个Job,如运行进程、创建新容器、Docker Server运行过程。
Docker架构整体包含:Image(基石)、Container(算力来源)、Network(管理Docker网络)、DataVolumes(提供持久化存储)。Image用于构建和打包阶段,Container用于启动和执行阶段。DataVolumes允许容器间数据共享,具有初始化、独立于容器、持久化存储、立即生效等特点。