【docker】docker 是什么

docker 是什么

  • [Docker 本质](#Docker 本质)
  • [Docker 的引擎迭代](#Docker 的引擎迭代)
  • [Docker 和虚拟机的区别](#Docker 和虚拟机的区别)
  • [Docker 为什么比虚拟机资源利用率高,启动快](#Docker 为什么比虚拟机资源利用率高,启动快)
  • [Docker 和 JVM 虚拟化的区别?](#Docker 和 JVM 虚拟化的区别?)

Docker 本质

Docker 本质其实是 LXC 之类的增强版,它本身不是容器,而是容器的易用工具。容器是 linux 内核中的技术,Docker 只是把这种技术在使用上简易普及了。Docker 在早期的版本其核心就是 LXC 的二次封装发行版。

Docker 作为容器技术的一个实现,或者说让容器技术普及开来的最成功的实现。Docker 是基于 Go 语言实现的一个开源项目,它的主要目标是"Build,Ship andRun Any APP,Anywhere",即通过对组件的封装、分发、部署、运行等生命周期的管理,使得用户的应用及其运行环境能够做到"一次封装,到处运行"。

早期 Docker 利用 LXC 做容器管理引擎,但是在创建容器时,不再使用模板去安装生成,而是通过镜像技术(把一个操作系统用户空间所需要使用到的组件事先编排好,并整体打包成一个文件,image 文件),镜像文件集中放在一个仓库中。当需要创建容器时,Docker 调用 LXC 的工具 lxc-create,但不再通过 lxc 的模板去安装,而是连接到镜像服务器上下载匹配的镜像文件,而后基于镜像启动容器。所以,Docker 极大的简化了容器的使用难度。以后我们创建启动容器,只需要一个命令,docker-run,docker-stop 就可以启动停止一个容器了。

Docker 的引擎迭代

Docker 早期是基于 LXC 容器管理引擎实现,当后来成熟之后,Docker 自建了一个容器引擎叫 libcontainer,后来 CNCF 的介入,Docker 又研发了一个工业化标准的容器引擎 runC,目前所使用的新版 Docker,所使用的容器引擎就是 RunC。

Docker 和虚拟机的区别


Docker 为什么比虚拟机资源利用率高,启动快

docker 有比虚拟机更少的抽象层。docker 不需要 Hypervisor 实现硬件资源虚拟化,运行在 docker 容器上的程序直接使用的是实际物理机的硬件资源。因此在 cpu、内存利用率上 docker 将会在效率上有明显的优势。docker 利用的是宿主机的内核,而不需要Guest OS,节省了 Guest OS 占用的资源。

docker 不需要 Guest OS,创建一个容器时,不需要和虚拟机一样重新加载一个操作系统内核。从而避免引寻、加载操作系统内核返回时耗时耗资源的过程,当新建一个虚拟机时,虚拟机软件需要加载 Guest OS,返回新建过程是分钟级别的。而新建一个docker 容器只需要几秒钟。

Docker 和 JVM 虚拟化的区别?


相关推荐
亲持红叶2 小时前
open-webui安装
docker·open-webui
伪装成塔的小兵2 小时前
Windows使用docker部署fastgpt出现的一些问题
windows·docker·容器·oneapi·fastgpt
技术小齐2 小时前
网络运维学习笔记 017HCIA-Datacom综合实验01
运维·网络·学习
大囚长3 小时前
AI工作流+专业知识库+系统API的全流程任务自动化
运维·人工智能·自动化
Struggle Sheep3 小时前
linux安装redis
linux·运维·redis
saynaihe4 小时前
2025吐槽季第一弹---腾讯云EO边缘安全加速平台服务
运维·安全·云计算·腾讯云
@#---4 小时前
删除驱动精灵的详细过程
运维·服务器
likeyou~coucou5 小时前
自动化之ansible(二)
运维·自动化·ansible
小红帽2.05 小时前
客服系统自动化方案:揭秘全渠道智能服务解决方案 vx: haotsh
运维·自动化
转身後 默落5 小时前
11.Docker 之分布式仓库 Harbor
分布式·docker·容器