【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 虚拟化的区别?


相关推荐
下一秒_待续4 分钟前
.Net8项目使用docker、docker-compose部署步骤
docker·容器·.net
有莘不破呀8 分钟前
服务器磁盘卷组缓存cache设置介绍
linux·运维·服务器
DBWYX22 分钟前
gcc 链接顺序,静态库循环依赖问题
linux·运维·服务器
zxsz_com_cn39 分钟前
风电行业预测性维护解决方案:AIoT驱动下的风机健康管理革命
大数据·运维·人工智能
我们的五年40 分钟前
【Linux系统】进程间通信-System V消息队列
linux·运维·服务器·c++
island13141 小时前
【Linux网络#18】:深入理解select多路转接:传统I/O复用的基石
linux·运维·数据库
mingyuewu2 小时前
MAC环境给docker换源
docker
GodGump3 小时前
dbgpt7.0 docker部署
运维·docker·容器
维度攻城狮5 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
Wnq100727 小时前
智能巡检机器人在化工企业的应用研究
运维·计算机视觉·机器人·智能硬件·deepseek