Docker 解决了什么问题?
这段时间Docker实在是如日中天,到处都是它的信息,你认为它解决了什么问题?有哪些应用场景?
这个问题显然没有标准答案,面试官只是想看看你是否有自己的想法,是否对新技术保持敏感,如果你的观点跟面试官不谋而合,绝对加分啊:)
下面都是笔者个人看法,轻拍~
1、程序在我这跑得好好的,在你那怎么就不行呢?! 这是一个典型的应用场景,Docker image中包含了程序需要的所有的运行时依赖,比如java的程序,肯定要在image中包含jdk;比如Python的程序,肯定要在image中包含对应版本的Python解释器。程序在我这跑得好好的,去你那就不行了,显然是环境问题。Docker把整个运行时环境打包放到image中,所以搞定了环境依赖问题!
这点很重要么?真的很重要!如果你做过部署或发布系统将会对此感触颇深。
我们知道,一个程序要跑起来,需要这么几部分:代码 + 运行环境 + 配置 + 依赖的服务。代码当然就是同一份代码,不同的环境都一样,通常不会有问题,Docker image中包含了运行环境+配置,这对部署相当友好。如果你没有做过这种系统(其实大部分人都没有做过啦),但是你肯定装过软件,装一些复杂的软件的时候有没有因为版本依赖或者编译参数等让你抓狂?用了Docker再也没有这种问题了:
docker pull xxx; docker run xxx; done:)
所以总结起来就是:Docker解决了运行环境和配置问题,方便发布,也就方便做持续集成。
2、系统好卡,肯定是又有哪个哥们的程序在作孽了 现在的服务器都牛的很,动不动128G内存,24个CPU,Linux本身就是个多租户的操作系统,可以多人共用,但是如果某个程序狂吃内存和CPU,占用了太多系统资源,这就会影响其他程序的运行。
一个公司的几个同事共用一台机器出现这种问题可以通过内部协调沟通解决。但是云主机提供商呢?不同的用户之间不认识,共用一台强大的计算机,结果某个程序耗尽了资源,用户肯定不乐意了。
所以虚拟机出现了,良好了做了资源隔离,不同用户之间彼此老死不相往来,不会相互影响,世界一下子清静了。但是,虚拟机有缺点:创建速度慢,迁移起来麻烦,因为中间加了一层guest os,有了性能损耗,一个牛逼的机器也就创建十几个虚拟机,太浪费了……
相对虚拟机的重量级虚拟化方案,Linux内核级的一些隔离方案让人们看到了希望,cgroups、namespace、tc、quota、chroot、lxc,终于,Docker出现了,Docker利用这些成熟的技术,让虚拟化变得轻量了起来,创建一个container瞬间完成,秒级!cpu指令集不再被翻译执行,性能损耗非常少,虽说隔离性没有虚拟机那么彻底,安全性上稍差一些,但也基本可以用,不用太担心:)
所以总结起来就是:更轻量的虚拟化,节省了虚拟机的性能损耗
上面两点是Docker解决的问题,那它有哪些应用场景呢?
其实从上面的描述中也基本可以窥其一二了
1、程序分发,gitlab的安装很恶心吧,所以有人做了gitlab的image 2、部署发布,这点对运维的同学很有帮助 3、PaaS,tsuru、flynn都是基于Docker的,CloudFoundry也要从warden迁移到Docker,不解
文章转载自 开源中国社区 [http://www.oschina.net]
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker Hub 官方仓库发布编程语言包
Docker 容器发展迅速,正在成为构建分布式应用的平台。而 Docker 项目组的目标就是不断的提升用户快速编码和构建项目的容易程度。而 Docker 的官方仓库 正是通过用户反馈以及一些最佳实践所提供的免费资源库。通过这些资源,开发者和系统管理员可以把精力放在业务的开发上,而不需要关心底层的系统架构。 Docker 的官方仓库提供的资源涉及很多方面,包括操作系统发行版、Web 服务器、数据库等。现在他们又提供了各种编程语言的映像,包括: c/c++ (gcc), clojure, go (golang), hy (hylang), java, node, perl, php, python, rails, 和 ruby. 我们很高兴的是 AWS 和 Perl 以及 Hy 项目都已经加入贡献者行列。 例如你可以很方便的通过命令 $ docker pull java:8u40 来安装 java 8u40 版本。 文章转载自 开源中国社区 [http://www.oschina.net]
- 下一篇
Load高,CPU idle很高,这情况太诡异了
Load很高,CPU使用率很低的诡异情况 第一次碰到这种Case:物理机的Load很高,CPU使用率很低 先看CPU、Load情况 如图一:vmstat显示很有多任务等待排队执行(r)top都能看到Load很高,但是CPU idle 95%以上 这个现象不太合乎常规,也许是在等磁盘IO、也许在等网络返回会导致CPU利用率很低而Load很高 贴个vmstat 说明文档(图片来源于网络N年了,找不到出处) 检查磁盘状态,很正常(vmstat 第二列也一直为0) 再看Load是在5号下午15:50突然飙起来的: 同一时间段的网络流量、TCP连接相关数据很平稳: 所以分析到此,可以得出:Load高跟磁盘、网络、压力都没啥关系 物理机上是跑的Docker,分析了一下CPUSet情况: 发现基本上所有容器都绑定在CPU1上(感谢 @辺客 发现这个问题) 进而检查to
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16