docker用什么语言开发的,docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些
docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些
docker是干什么的

docker是开源的应用容器引擎,能更好地在容器内运行任何应用。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker是 PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,源代码托管在Github上,基于go语言并遵从Apache2.0协议开源。
Docker自2013年以来非常火热,无论是从github上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持,就连Google的 Compute Engine也支持docker在其之上运行。
Docker的局限
1、Docker是基于Linux64bit的,无法在32bit的linux/Windows/unix环境下使用。
2、LXC是基于cgroup等linux kernel功能的,因此container的guest系统只能是linux base的。
3、隔离性相比KVM之类的虚拟化方案还是有些欠缺,所有container公用一部分的运行库。
4、网络管理相对简单,主要是基于namespace隔离。
5、cgroup的cpu和cpuset提供的cpu功能相比KVM的等虚拟化方案相比难以度量(所以dotcloud主要是按内存收费)。
6、Docker对disk的管理比较有限。
7、container随着用户进程的停止而销毁,container中的log等用户数据不便收集。
docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些

简单得来说,Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs); 目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机。
Docker则实现了一种应用程序级别的隔离; 它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来。
Docker是为开发者和系统管理员设计的,用来发布和运行分布式应用程序的一个开放性平台。
由两部分组成:
Docker Engine: 一个便携式、轻量级的运行环境和包管理器。
(注* 单OS vs 单线程,是不是跟NodeJS特别像?)
Docker Hub: 为创建自动化工作流和分享应用创建的云服务组成。
(注* 云端镜像/包管理 vs npm包管理,是不是跟npm特别像?)
从2013年3月20日,第一个版本的Docker正式发布到 2014年6月 Docker 1.0 正式发布,经历了15个月。
虽然发展历程很短,但Docker正在有越来越流行的趋势。
其实Container技术并非Docker的创新,HeroKu, NodeJitsu 等云服务商都采用了类似这种轻量级的虚拟化技术,但Docker是第一个将这这种Container技术大规模开源并被社区广泛接受的。
好的部分
Docker相对于VM虚拟机的优势十分明显,那就是轻量和高性能和便捷性, 以下部分摘自: KVM and Docker LXC Benchmarking with OpenStack
快
运行时的性能可以获取极大提升(经典的案例是提升97%)
管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
敏捷
像虚拟机一样敏捷,而且会更便宜,在bare metal(裸机)上布署像点个按钮一样简单。
灵活
将应用和系统“容器化”,不添加额外的操作系统,
轻量
你会拥有足够的“操作系统”,仅需添加或减小镜像即可。
在一台服务器上可以布署100~1000个Containers容器。
便宜
开源的,免费的,低成本的。
由现代Linux内核支持并驱动。
注* 轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。
生态系统
正在越来越受欢迎,只需要看一看Google的趋势就知道了, docker or LXC.
还有不计其数的社区和第三方应用。
云支持
不计其数的云服务提供创建和管理Linux容器框架。
有关Docker性能方面的优势,还可参考此IBM工程师对性能提升的评测,从各个方面比VMs(OS系统级别虚拟化)都有非常大的提升。
Performance Characteristics of VMs vs Docker Containers by Boden Russel (IBM)
Performance characteristics of traditional v ms vs docker containers
有争论的部分
任何项目都会有争论,就像Go,像NodeJS, 同样Docker也有一
些。
能否彻底隔离
在超复杂的业务系统中,单OS到底能不能实现彻底隔离,一个程序的崩溃/内存溢出/高CPU占用到底会不会影响到其他容器或者整个系统?很多人对Docker能否在实际的多主机的生产环境中支持关键任务系统还有所怀疑。
注* 就像有人质疑Node.JS单线程快而不稳,无法在复杂场景中应用一样。
不过可喜的是,目前Linux内核已经针对Container做了很多改进,以支持更好的隔离。
GO语言还没有完全成熟
Docker由Go语言开发,但GO语言对大多数开发者来说比较陌生,而且还在不断改进,距离成熟还有一段时间。
此半git、半包管理的方式让一些人产生不适。
被私有公司控制
Docker是一家叫Dotcloud的私有公司设计的,公司都是以营利为目的,比如你没有办法使用源代码编绎Docker项目,只能使用黑匣子编出的Docker二进制发行包,未来可能不是完全免费的。
目前Docker已经推出面向公司的企业级服务(咨询、支持和培训)。
docker容器的基本概念?

1.Docker一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
2.Docker 的优点
Docker一个用于开发,交付和运行应用程序的开放平台。
Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。
借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。
通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
1、快速,一致地交付您的应用程序
Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:
您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。
他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。
当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。
2、响应式部署和扩展
Docker基于容器的平台,允许高度可移植的工作负载。
Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务或混合环境中运行。
Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。
3、在同一硬件上运行更多工作负载
Docker 轻巧快速。
它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。
Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。
相关文章
猜你喜欢
-
承德网站制作选哪家-承德网站制作哪家好
摘要:本文旨在探讨在承德地区选择网站制作服务时,应考虑的关键因素。文章首先介绍了承德网站制作的市场现状,包括竞争程度、技术发展水平以及客户需求的多样性。接着,文章详细阐述了在选择承德网站制作服务商时应考虑的几个关键因素:技术实力、服务质量、...
-
制作优惠券网站的视频教程-视频教程:优惠券网站制作
制作优惠券网站的视频教程 摘要: 在当前数字化时代,制作和推广优惠券网站已成为企业吸引顾客、增加销售额的重要策略之一。本文将详细介绍如何利用视频教程来创建和优化一个优惠券网站,包括网站设计、内容制作、功能开发以及营销策略。通过具体的步骤和案...
-
学习网站建设网站优化-网站开发与优化技巧
摘要:本文旨在探讨学习网站建设和网站优化的重要性,以及如何通过系统化的方法来提升网站的用户体验和搜索引擎排名。文章首先介绍了网站在数字时代的重要性,强调了良好的网站设计对于企业成功的关键作用。接着,文章详细阐述了网站建设和优化的基本原则、技...
-
招商信息网站制作-招商信息网站制作
摘要: 随着全球化和互联网技术的发展,招商引资成为许多国家和地区经济发展的重要手段。一个专业的招商信息网站不仅可以提高招商引资的效率,还可以为投资者提供一个全面、便捷的投资环境。本文将详细介绍如何制作一个高质量的招商信息网站,包括网站的设计...
-
哪个网站建设公司好呢-网站建设公司哪个好?
标题:选择网站建设公司:关键因素与建议 在当今数字化时代,一个优秀的网站是企业与潜在客户沟通的重要桥梁。因此,选择合适的网站建设公司对于确保网站的成功至关重要。本文将探讨影响网站建设公司选择的关键因素,并提供一些实用的建议。 首先,考虑网站...
-
沈阳网站制作工作室-沈阳网站开发工作室
摘要:本文旨在探讨沈阳网站制作工作室在当前信息技术快速发展的背景下如何适应市场变化,提升服务质量,并实现可持续发展。文章首先分析了沈阳网站制作工作室的发展现状,包括其业务范围、客户群体以及面临的挑战和机遇。接着,文章深入讨论了工作室如何通过...