作者:A布匹rray | 来源:互联网 | 2023-09-04 18:27
Docker是一个实现了轻量级虚拟化的平台,这个平台主要由以下的几部分组成:
客户端(Docker Client)
守护进程(Docker daemon)
镜像(Docker Image)
容器(Docker Container)
镜像仓库(Docker Registry)
Docker内部组件之间的相互关系如图1所示。Docker守护进程是整个Docker组成部分的核心,也称作服务端。Docker守护进程可以部署在本地,也可以部署在远程。而Docker客户端则通过RESTFul形式的API与Docker守护进程通信。镜像仓库可以为Docker客户端提供能够实现各种功能的只读镜像,通过这些镜像可以创建出一个或多个容器。每个容器都是运行在Docker客户端中的一个独立进程。
![](https://img6.php1.cn/3cdc5/982b/cd5/3900d6d2a4284cf0.png)
图1-内部组件关系图
客户端
Docker客户端与守护进程的交互情况如图2所示。Docker客户端是通过命令行或者其他的工具来使用API。当Docker客户端向Docker服务器发送Docker命令时,由Docker daemon进程负责处理Docker客户端以RESTFul形式调用的API命令。当然我们可以在宿主机上同时运行Docker客户端和守护进程,也可以通过本地Docker客户端连接到远程宿主机上的Docker守护进程。
![](https://img6.php1.cn/3cdc5/982b/cd5/0e70d3cb0f3f300c.png)
图2-客户端示意图
守护进程
Docker守护进程是创建和运行容器的Linux进程,守护进程可以绑定本地的端口并提供API服务,同时也支持远程访问及控制。当Docker守护进程接收到指令后,将由daemon进程执行镜像的编译、容器的启动/停止以及分发。
镜像
Docker镜像是用来创建Docker容器的模板,用户是基于镜像来运行自己的容器。通常镜像的体积都很小,便于分享、存储和更新。
容器
容器是独立运行的一个或一组应用。容器是基于镜像启动并运行的,在容器中可以运行一个或多个进程。当容器启动完成后,用户就可以使用容器提供的服务或在容器中完成特定的软件安装。镜像可以看作是Docker生命周期中的构建或者是打包阶段,而容器则被认为是在启动或者是执行阶段。
镜像仓库
Docker镜像仓库是用来保存镜像的,同源码版本控制中的代码与代码仓库的关系。Docker的镜像仓库可以分为公有和私有仓库。由Docker公司运营的公有镜像仓库是Docker Hub(https://hub.docker.com/)。用户可以建立自己的账号,分享或保存自己的镜像。