当前位置:首页 > 容器技术 > 正文

docker容器技术的架构和优势


一、Docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些什么是Docker?
简单来说,Docker就是一个由GO语言编写的程序管理的“容器”(Linuxcontainers,LXCs);当前云服务的基石是在操作系统级别、同一物理级别上的隔离;服务器计算机上虚拟出多个主机。Docker实现应用级隔离;将我们的基本运营和开发单元从直接虚拟主机(VM)操作更改为运行程序运行的“容器”。
Docker是一个开放平台,专为开发人员和系统管理员设计,用于发布和运行分布式应用程序。由两部分组成:
DockerEngine:一个可移植的、轻量级的运行时环境和包管理器。(注*单操作系统或单线程,这与NodeJS特别相似吗?)
DockerHub:为构建自动化工作流程和共享应用程序而构建的云服务。(注*云镜像/包管理和npm包管理,是不是和npm很相似?)
从2013年3月20日起,Docker第一个版本正式发布,直到2014年6月Docker1.0发布15个月后正式发布。尽管它的发展历史很短,但Docker正在变得越来越流行。
事实上,容器技术并不是Docker的创新。HeroKu和NodeJitsu等云提供商也采用了类似的轻量级虚拟化技术,但Docker是第一个大规模使用这种容器技术的。开源并被社区广泛接受。
好的部分
Docker相对于VM虚拟机的优势非常明显,即轻量、高性能和方便。以下部分摘自:KVM和DockerLXCBenchmarkingwithOpenStack
快速
运行时性能可以显着提升(经典案例提升97%)
管理操作(开机、关机、启动、重启等)均以秒或毫秒为单位来表示。
敏捷
与虚拟机一样敏捷,而且价格更实惠,部署到裸机就像单击按钮一样简单。
灵活
“容器化”应用程序和系统,无需添加额外的操作系统,
轻量级
您将拥有足够的“操作系统”,只需添加或减少镜子。您可以在服务器上部署100到1000个容器。
经济
开源、免费、成本低。由现代Linux内核支持和驱动。注意*轻量级容器当然可以在物理机上打开多个“容器”,并且比虚拟机更便宜。
生态系统
越来越流行,看看Google、docker或者LXC的趋势就知道了。
社区和第三方应用无数。
云支持
许多云服务提供了用于构建和管理Linux容器的框架。
关于Docker的性能优势,也可以参考这位IBM工程师的性能提升评测。它在各个方面都比VM(操作系统级虚拟化)有显着改进。转载仅供参考。


二、docker是干什么的

Docker是一个开源平台,我们可以用它来开发、部署和运行我们的应用程序。

Docker是一个开源应用程序容器引擎,允许开发人员将其应用程序和依赖项打包到可移植映像中,然后将其发布到任何具有Linux或Linux操作系统的计算机。虚拟化也是可能的。容器完全使用沙箱机制,容器之间不会有任何接口。

由于具有基于LXC的轻量级虚拟化特性,Docker相对于KVM等最明显的特点就是启动快、消耗资源少。因此,需要创建一个隔离的、标准化的运行环境,轻量级的PaaS(如dokku),创建自动化测试和持续集成环境,以及所有可以水平扩展的应用程序(尤其是需要快速启动和停止才能运行的Web应用程序))。应对起伏)。

Docker架构

Docker采用客户端-服务器(C/S)架构模型,使用远程API来管理和创建Docker容器。Docker容器是从Docker镜像创建的。容器和镜像之间的关系类似于面向对象编程中对象和类的关系。

Docker采用C/SDockerdaemon架构作为服务器,接受客户端的请求并处理这些请求(创建、运行和分发容器)。客户端和服务器可以在同一台机器上运行,也可以通过套接字或RESTfulAPI进行通信。

Dockerdaemon通常运行在宿主主机的后台,等待接收来自客户端的消息。Docker客户端为用户提供了一系列可执行命令,用户使用这些命令与Dockerdaemon进行交互。

以上内容请参考-Docker