IT评测·应用市场-qidao123.com

标题: 【Docker基础】理解 Docker:本质、性质、架构与核心组件 [打印本页]

作者: 民工心事    时间: 2025-3-13 00:39
标题: 【Docker基础】理解 Docker:本质、性质、架构与核心组件
Docker 本质


因此,Docker 极大地简化了容器的使用过程。用户创建和启动容器时,只需使用简单的命令:docker run 启动容器,docker stop 停止容器。

Docker 的引擎迭代

Docker 在早期是基于 LXC 容器管理引擎实现的,但随着技术的逐步成熟,Docker 自行开辟了一个新的容器引擎,名为 libcontainer。随后,随着 CNCF(Cloud Native Computing Foundation)的介入,Docker 又研发了一个符合工业化标准的容器引擎——runC。现在,最新版的 Docker 已经接纳了 runC 作为其默认的容器引擎。

Docker 和虚拟机的区别

对比项传统虚拟机Docker 容器磁盘占用几个 GB 到几十个 GB几十 MB 到几百 MBCPU/内存占用虚拟操作系统非常占用 CPU 和内存,必要通过虚拟层调用,占用率高Docker 引擎占用资源极低,直接作用于硬件资源,占用少启动速率几分钟(从开机到运行项目)几秒(从开启容器到运行项目)安装/管理必要专门的运维技术安装、管理方便,应用摆设摆设手动摆设,速率慢体系化摆设,可以自动化,速率快隔离性系统级别(每个虚拟机有独立的操作系统)进程级别(共享宿主机操作系统内核)封装程度打包整个操作系统打包项目代码和依赖信息
Docker 为什么比虚拟机资源利用率高,速率快?


从上图可以看出来:
Docker 相比虚拟机具有更少的抽象层。Docker 不依赖 Hypervisor 进行硬件资源虚拟化,容器中的程序直接访问宿主机的物理硬件资源。
因此,在 CPU 和内存的利用率上,Docker 显著优于虚拟机,具备更高的效率。
Docker 使用的是宿主机的内核,而不必要独立的 Guest OS,这也节省了操作系统所占用的资源。 当创建 Docker 容器时,不必要像虚拟机那样重新加载操作系统内核。如许制止了加载和启动操作系统内核时所消耗的时间和资源。当创建一个虚拟机时,虚拟机管理软件必要加载 Guest OS,整个过程通常必要几分钟;而创建 Docker 容器则只需几秒钟。

Docker 和 JVM 虚拟化的区别

对比项JVMDocker 容器性能JVM 必要占用肯定的 CPU 和内存基本没有损失虚拟层面基于 JVM 虚拟机,属于更高层的虚拟化基于操作系统,更加通用,不依赖特定代码代码无关性一个特定代码的执行平台,运行时才存在,只能支持特定代码的执行,并且必须在 JVM 进程内模拟了整个操作系统,是静态存在的,可以支持任何相同平台的应用程序主机隔离性JVM 不隔离主机通过命名空间实现隔离
Docker 版本

1. LXC (Linux Containers)

LXC 是最早的 Linux 容器技术,Docker 早期版本使用 LXC 来实现容器的底层功能。固然使用者较少,但 LXC 仍在持续发展中。
2. libcontainer

从 Docker 0.9 版本开始,Docker 开辟了 libcontainer,作为 LXC 的替换方案。在 Docker 1.10 版本中,完全移除了 LXC 支持,并在 1.11 版本中将 libcontainer 拆分成 runc,后者成为容器的标准。
3. Moby

Moby 是 Docker 推出的开源项目,核心组件就是 moby。moby 是 Docker 引擎(dockerd)使用的开源项目,现已从 moby 仓库 fork 并使用 containerd 作为运行时标准。
官方网站
4. docker-ce

Docker 的开源版本,CE 代表 Community Edition(社区版)。docker-ce 的组件泉源于 moby 和 containerd 等开源项目。
定价页面
5. docker-ee

Docker 的收费版本,EE 代表 Enterprise Edition(企业版)。与 docker-ce 相同,但添加了企业级功能和支持。
定价页面
总结:



Docker 架构

Docker 使用 客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。
Docker 容器通过 Docker 镜像来创建。

1. Docker 仓库 (Registry)

Docker 仓库用于存储和管理 Docker 镜像。可以类比为代码仓库(如 Git)。

2. Docker 守护进程 (Daemon)

Docker 守护进程是运行在后台的服务,负责管理 Docker 容器的生命周期(包括容器的创建、运行、停止等)。它通常也被称为 Docker Daemon,负责:

3. Docker 客户端 (Client)

Docker 客户端是与 Docker 守护进程通信的接口,用户可以通过客户端与 Docker 守护进程交互,发送命令(如 docker run、docker build 等)。客户端主要通过以下方式进行通信:

4. Docker 主机 (Host)

Docker 主机是指运行 Docker 守护进程和容器的物理机或虚拟机。Docker 主机负责:

5. Docker 镜像 (Images)

Docker 镜像是容器的构建模板,包含运行某个应用所必要的操作系统情况、依赖库、应用程序代码等。镜像具有以下特点:

6. Docker 容器 (Container)

Docker 容器是由 Docker 镜像创建的运行实例,是应用程序和服务的封装体。容器在隔离情况中运行,具有以下特点:

增补组件

除了基本的架构组成,Docker 生态系统还包括以下相干组件:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4