文章目录
- 一、Docker 简介
- 二、Docker 架构
- 1. Docker 客户端和服务器
- 2. Docker 架构图
- 3. Docker 运行流程图
- 三、Docker 三要素
- 1. 镜像(Image)
- 2. 容器(Container)
- 3. 仓库(Repository)
一、Docker 简介
Docker
是一个开源的应用容器引擎,基于Go语言 并遵从Apache2.0协议开源;
Docker
可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
二、Docker 架构
1. Docker 客户端和服务器
Docker
是客户-服务器(C/S
)架构的程序。
Docker
客户端只需向Docker
服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。
Docker
提供了一个命令行工具docker
以及一整套 RESTful API
。
你可以在同一台宿主机上运行Docker
守护进程和客户端,也可以从本地的Docker
客户端连接到运行在另一台宿主机上的远程Docker
守护进程。
下图描绘了Docker
的架构:
2. Docker 架构图
3. Docker 运行流程图
三、Docker 三要素
Docker
的三个基本要素:镜像(Image
)、容器(Container
)、仓库(Repository
)
1. 镜像(Image)
镜像是容器构建的基石,是基于联合文件系统(UnionFS)
的一种层式结构。
它由一系列指令构建,是一种轻量级、可执行的独立软件包,用于打包软件运行环境和基于运行环境开发的软件(代码、运行时、库、环境变量和配置文件)。
Docker
镜像(image
)就是一个只读的模板。 镜像可以用来创建Docker容器,一个镜像可以创建很多容器
2. 容器(Container)
Docker
利用容器(container
)独立运行的一个或者一组应用。
容器是利用镜像创建的运行实例(相对于Java中的类和对象的概念)。
容器可以被启动、开始、停止、删除。每个容器都是互相隔离的,保证安全的平台。
可以把容器看做是一个简易版的Linux环境 (包括root用户名权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序
3. 仓库(Repository)
仓库(repository
)是集中存放镜像文件的场所。
Docker 公司提供了公共的镜像仓库Docker Hub
(https://hub.docker.com),提供了庞大的镜像集合供使用。
一个 Docker Registry
中可以包含多个仓库(Repository
),每个仓库可以包含多个标签(Tag
),每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签对应该软件的各个版本。我们可以通过 <仓库名>:<标签>
的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest
作为默认标签。
更多详情可参考:
Docker 架构及工作原理 - docker动态 - docker中文社区
Docker架构及其三要素 - DeepInThought - 博客园 (cnblogs.com)
Docker原理(图解+秒懂+史上最全)_40岁资深老架构师尼恩的博客-CSDN博客
图解Docker的整体架构_docker架构图_postnull的博客-CSDN博客