Docker是一个开源项目,用于将应用程序作为可移植的、自给自足的容器自动部署,这些容器可以在云端或本地运行。Docker也是一家推广和发展这项技术的公司,与云、Linux和Windows供应商(包括微软)合作。
Docker在混合云的所有层部署容器。
Docker容器可以在任何地方运行,在客户数据中心、外部服务提供商或云中,在Azure上。Docker映像容器可以在Linux和Windows上本地运行。但是,Windows映像只能在Windows主机上运行,Linux映像可以在Linux主机和Windows主机上运行(到目前为止,使用的是Hyper-V Linux VM),其中主机是指服务器或VM。
开发人员可以在Windows、Linux或macOS上使用开发环境。在开发计算机上,开发人员运行Docker主机,其中部署Docker映像,包括应用程序及其依赖项。在Linux或macOS上工作的开发人员使用基于Linux的Docker主机,他们只能为Linux容器创建映像。(在macOS上工作的开发人员可以编辑代码或从macOS运行Docker CLI,但在编写本文时,容器并不直接在macOS上运行。)在Windows上工作的开发人员可以为Linux或Windows容器创建映像。
为了在开发环境中托管容器并提供额外的开发工具,Docker为Windows或macOS提供Docker Community Edition(CE)。这些产品安装必要的虚拟机(Docker主机)来承载容器。Docker还提供Docker Enterprise版本(EE),该版本是为企业开发而设计的,供IT团队在生产中构建、发布和运行大型业务关键型应用程序时使用。
要运行Windows容器,有两种运行时类型:
- Windows服务器容器通过进程和命名空间隔离技术提供应用程序隔离。Windows服务器容器与容器主机以及主机上运行的所有容器共享内核。
- Hyper-V容器通过在高度优化的虚拟机中运行每个容器来扩展Windows服务器容器提供的隔离。在此配置中,容器主机的内核不与Hyper-V容器共享,从而提供更好的隔离。
这些容器的图像创建方式和功能相同。不同之处在于如何从运行Hyper-V容器的映像创建容器需要额外的参数。有关详细信息,请参见Hyper-V容器。
Docker容器与虚拟机的比较
下图显示了VMs和Docker容器之间的比较。
虚拟机包括应用程序、所需的库或二进制文件以及完整的来宾操作系统。完全虚拟化需要比容器化更多的资源。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/292231.html