什么是Docker
Docker是一个用于开发,交付和运行应用程序的开放平台。可以创建轻量级的、可移植的、自给自足的容器,用于快速开发,交付和运行应用程序。其隔离和安全性使你可以在给定主机上同时运行多个容器。Docker容器是轻量级的,因为它们不需要虚拟机管理程序的额外负载,而是直接在主机的内核中运行。这意味着与使用虚拟机相比,可以在给定的硬件组合上运行更多的容器。你甚至可以在实际上是虚拟机的主机中运行Docker容器!
如果有点懵,推荐看这个: https://juejin.im/post/5b260ec26fb9a00e8e4b031a
Docker能做什么(优势)
Docker | Build, Ship, and Run Any App, Anywhere
快速,一致地交付应用程序
Docker提供除内核外完整的运行环境,可保证开发,测试,生产环境的一致性,避免程序因不同环境而产生的各种bug。
Docker非常适合持续集成和持续交付(CI / CD)工作流程。
快速部署,扩展和迁移
Docker容器具有高度可移植性。Docker容器可以各种环境中运行,如云主机,物理机,虚拟机。
在同一硬件上运行更多工作负载
Docker轻巧快速,由于其共享内核的特性,启动快速占用内存小。Docker非常适合于高密度环境以及中小型部署,支持用更少的资源做更多的事情。
微服务
Dokcer鼓励一个容器一个进程(one process per container)”的方式。该方式非常适合以单进程为主的微服务架构的应用。
Docker和其他虚拟化技术区别
目前主流的虚拟化技术有KVM XEN ESXI(VMware) Hyper-V(Microsoft) , docker。按虚拟化类型可分为主机级虚拟化和容器级虚拟化:
主机级虚拟化:独立OS
type-I: 完全虚拟化,在硬件上运行hypervisor,所有guest os都装在这个hypervisor之上,不需要在宿主机上安装操作系统。
如:kvm、xen、vmare ESX/ESXI
type-II: 半虚拟化,在硬件上先运行Host OS,在此OS基础上运行hypervisor,所有guest os都装在这个hypervisor之上。
如: VMware Workstation、VirtualBox
主机级虚拟化有非常高的隔离能力,该级别的虚拟机有独