一、docker的由来
容器虚拟化基础之 LXC
LXC 是什么?LXC(LinuX Containers)Linux 容器,一种操作系统层虚拟化技术,为 Linux 内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。透过统一的名字空间和共享 API 来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得 Linux 用户可以容易的创建和管理系统或应用容器。
LXC 是最早一批真正把完整的容器技术用一组简易使用的工具和模板来极大的简化了容器技术使用的一个方案.
LXC 虽然极大的简化了容器技术的使用,但比起直接通过内核调用来使用容器技术,其复杂程度其实并没有多大降低,因为我们必须要学会 LXC 的一组命令工具,且由于内核的创建都是通过命令来实现的,通过批量命令实现数据迁移并不容易。其隔离性也没有虚拟机那么强大。后来就出现了 docker ,所以从一定程度上来说, docker 就是 LXC 的增强版。
总结:Docker是基于LXC虚拟容器之上的容器技术,Docker帮我们封装处理好了调用LXC的命令,我们只需要使用Docker提供的命令即可实现我们想要的容器功能,而不需要关注容器是如何通过LXC语言创建运行的。
二、 Docker 和虚拟机的区别
Docker 作为容器技术的一个实现,或者说让容器技术普及开来的 最成功 的实现。Docker 是基于 Go 语言实现的一个开源项目,它的主要目标是 “Build , Ship and Run Any APP, Anywhere” ,即通过对组件的封装、分发、部署、运行等生命周期的管理,使得用户的应用及其运行环境能够做到“ 一次封装,到处运行 ” 。
** 虚拟机(Virtual Machine,VM)是一种完整的操作系统(OS)实例,可以在物理计算机上运行。** 每个虚拟机都包含自己的操作系统、应用程序和系统资源,例如内存、处理器等。虚拟机通过虚拟化层与底层物理硬件进行通信,提供了强大隔离性和安全性。每个虚拟机都需要额外的资源和运行时间来启动和运行。
Docker是一种轻量级的容器化技术,它利用操作系统级别的虚拟化(OS-level virtualization),将应用程序及其所有依赖项封装在一个可移植的容器中。Docker容器与主机共享操作系统内核,因此相对于虚拟机而言,更加轻量级和高效。Docker容器可以更快地启动、停止和迁移,并且更节省资源。
三、docker系统架构以及包含的技术
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。Docker 容器通过 Docker 镜像来创建的。Docker官方架构如下:
Docker 官方架构包括以下几个核心组件:
Docker Client(Docker 客户端):客户端是与 Docker Daemon 交互的命令行工具或图形界面工具。用户可以使用客户端来向 Docker 守护进程发送请求,以执行容器的创建、启动、停止等操作。
Docker Host(Docker 主机):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker Daemon(Docker 守护进程):守护进程是 Docker 的后台服务,负责管理和运行容器。它接受 Docker API 请求,并执行相关操作,如创建、启动、停止、删除容器等。Docker Daemon 运行在主机上,并通过 RESTful API 与客户端进行通信。
Docker 镜像(Docker Images):镜像是用于创建 Docker 容器的模板。它包含了应用程序运行所需的所有文件系统、库和依赖项。镜像是只读的,可以通过 Docker Hub 或私有仓库获取。用户可以基于现有镜像创建自定义镜像,也可以将自定义镜像推送到仓库供其他用户使用。
Docker 容器(Docker Containers):容器是基于镜像创建的运行实例。容器是基于镜像创建的可运行实例。每个容器都是一个隔离的环境,包含了应用程序和其依赖项。容器具有自己的文件系统、网络和进程空间,可以独立地运行在宿主机上。容器可以被启动、停止、删除和迁移,使得应用程序的部署和管理变得更加灵活和高效。
Docker Registry(Docker 仓库):仓库是用于存储和分发 Docker 镜像的集中位置。Docker Hub 是 Docker 官方提供的公共仓库,用户可以在其中找到大量的官方和社区维护的镜像。此外,用户还可以搭建私有仓库来存储自己的镜像。
标签:容器,创建,虚拟机,LXC,镜像,Docker,基本概念 From: https://www.cnblogs.com/velloLei/p/18404012