一、虚拟化与容器虚拟化的概述
操作系统层虚拟化指的是在单一宿主操作系统上划分出若干独立的执行环境。这种虚拟化技术由操作系统内核直接提供,虚拟出来的操作系统共享宿主机的内核及硬件资源。操作系统虚拟化的核心在于将操作系统与应用层隔离开,并通过虚拟化技术让应用层认为自己独占操作系统。
操作系统层虚拟化的优势在于实现了虚拟操作系统与物理操作系统的隔离,避免了重复安装物理操作系统的麻烦。著名的操作系统虚拟化解决方案包括Virtual Server、Zone、Virtuozzo以及虚拟专用服务器(Virtual Private Server,VPS)。VPS通过虚拟服务器软件在一台物理机上创建多个相互隔离的小型服务器,这些小型服务器拥有各自独立的操作系统,其运行和管理与独立主机无异,确保用户独享资源并节约成本。
虚拟化技术分类包括仿真虚拟化(对硬件无要求,性能较低)、VMware半虚拟化(虚拟机可使用真实物理硬件,性能高,但需要修改内核)、Xen硬件辅助虚拟化以及VMware和KVM(需要硬件支持,无需修改内核,直接使用真实硬件,性能接近宿主机)。容器虚拟化技术如LXC和Docker则与主机虚拟化不同,主机虚拟化特点包括:

容器虚拟化特点包括:

然而,容器虚拟化也存在学习成本增加、操作控制复杂、网络控制与主机虚拟化不同、服务治理等缺点。
容器技术的发展始于2008年的LXC,它是首套完整的容器管理解决方案,无需任何补丁即可直接运行在Linux内核上,但管理和创建容器较为缓慢且不便于迁移。2013年,Docker在LXC基础上发展起来,dotCloud公司基于此构建了一套容器管理生态系统,包括容器镜像、注册表、RESTful API及命令行操作界面。Docker版本演变包括2017年前的1.7、1.8、1.9、1.10、1.11、1.12、1.13版本,以及2017年3月1日后的商业开源版本Docker-CE和Docker-EE(17-03-ce、17-06-ce、18-03-ce、18-06-ce、18-09-ce、19.03-ce等)。
二、Docker概述

Docker是一个开源项目,起源于2013年初,最初是dotCloud公司内部的一个业余项目,用Go语言实现。随后项目加入Linux基金会,遵循Apache 2.0协议,代码在GitHub上维护。
Docker自开源以来受到广泛关注,dotCloud公司因此更名为Docker Inc。Redhat在其RHEL6.5中支持Docker,Google也在其PaaS产品中广泛应用。
Docker的目标是实现轻量级的操作系统虚拟化解决方案,基于Linux容器(LXC)技术。Docker对LXC进行了进一步封装,使得用户无需关心容器的管理,操作变得更加简便。用户操作Docker容器就像操作一个快速轻量级的虚拟机一样简单。
作为一种新兴的虚拟化方式,Docker相较传统虚拟化方式具有众多优势。首先,Docker容器的启动可以在秒级完成,远快于传统虚拟机。其次,Docker对系统资源的利用率高,一台主机上可以同时运行数千个Docker容器。容器仅运行应用本身,几乎不消耗额外系统资源,确保高性能和低系统开销。传统虚拟机需要为每个应用启动一个虚拟机,而Docker只需启动多个隔离的应用。
具体来说,Docker在以下几个方面具有显著优势:
与传统虚拟机相比:
Docker的基本架构采用C/S架构,包括客户端和服务端。Docker daemon作为服务端接受来自客户端的请求,并处理这些请求(如创建、运行、分发容器)。客户端和服务端既可以在一台机器上运行,也可以通过socket或RESTful API进行通信。

Docker daemon通常在宿主机后台运行,等待接收来自客户端的消息。Docker客户端为用户提供一系列可执行命令,用户通过这些命令与Docker daemon交互。
容器、镜像、仓库、daemon、client之间的关系如下:

三、Docker的名字空间
名字空间是Linux内核的一个强大特性。每个容器都有自己独立的名字空间,运行在其中的应用就像在独立的操作系统中运行一样。名字空间确保容器之间彼此互不影响。

以上就是Docker的介绍的详细内容,更多请关注php中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号