Docker是什么?
Docker是开发人员和系统管理员使用容器开发,部署和运行应用程序的平台。使用Linux容器部署应用程序称为容器化。Linux容器不是一个全新的概念,它们用于轻松部署应用程序。
它的目标是:‘Build,Ship and Run Any App,Anywhere’,即一次封装到处运行。
容器化越来越受欢迎,因为容器是:
- 灵活:即使是最复杂的应用也可以集装箱化。
- 轻量级:容器利用并共享主机内核。
- 可互换:您可以即时部署更新和升级。
- 便携式:您可以在本地构建,部署到云,并在任何地方运行。
- 可扩展:您可以增加并自动分发容器副本。
- 可堆叠:您可以垂直和即时堆叠服务。
镜像(Image)
一个镜像像是一个可执行的包,其中包括运行应用程序所需的所有内容:代码,运行状态,库,环境变量和配置文件。可以将它理解为一个只读的模板,通过运行它启动容器。
容器(Container)
容器是镜像的实例,可以将其启动,关闭,删除,容器之间是相互隔离的,它是可变的,可以理解为在镜像的最上层创建了一个可写层。
仓库(Repository)
仓库就是存放镜像的的地方,就像githup是存放代码的地方,最大的公开仓库是Docker Hup,我们一般从上面pull别人做好的镜像。
Docker与虚拟化的区别
Docker引擎的基础是Linux容器技术(Linux Container,LCX) ,是在系统内核层次实现的虚拟化,而传统的虚拟化是基于硬件的。
一个容器运行原生的Linux与其它在同一主机容器上的容器共享内核,它运行一个独立的进程,不占用任何其他可执行文件的内存,使其轻量级。
相比之下,虚拟机(VM)运行一个完整的“客户”操作系统,通过虚拟机管理程序对主机资源进行虚拟访问。通常,VM提供的环境比大多数应用程序需要的资源更多