嗯,看来你已经入门了!有没有发现标题全部都是乱序呢?但是有没有误导你?导致你,没有正确的读出“如何通俗易懂解释Docker是什么?” 对,Docker的就有这么神乎其神的功能!
docker就是类似的理念。现在都流行云计算了,云计算就好比大货轮。docker就是集装箱。
1.不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,而且很麻烦,还会造成一些冲突。比如IIS和Apache访问端口冲突。这个时候你就要隔离.net开发的网站和php开发的网站。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小,小就意味着省钱了。
2.你开发软件的时候用的是Ubuntu,但是运维管理的都是centos,运维在把你的软件从开发环境转移到生产环境的时候就会遇到一些Ubuntu转centos的问题,比如:有个特殊版本的数据库,只有Ubuntu支持,centos不支持,在转移的过程当中运维就得想办法解决这样的问题。这时候要是有docker你就可以把开发环境直接封装转移给运维,运维直接部署你给他的docker就可以了。而且部署速度快。
3.在服务器负载方面,如果你单独开一个虚拟机,那么虚拟机会占用空闲内存的,docker部署的话,这些内存就会利用起来。
Docker的思想来自于集装箱,集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。
啥?你还没懂? 那咱继续。。
同学,你知道服务器吗?那,虚拟机呢?
你知道网站是运行在服务器上的吧?
网站怎么运行的呢?需要有东西装网站吧?
服务器就是装网站的地方啊~
那服务器大不大?虚拟机大不大?
开个服务器好麻烦呀~
买个服务器好贵啊~
服务器配置那些环境真的好烦啊,搞不定啊~
所以,docker来了。
docker是容器,放啥呢?
放应用。
应用是啥?
一个网站就是应用啊~
一个程序也是应用啊~
甚至,一个系统也是应用啊~
从此以后我就不用配环境了,
也不用装环境了,
更不用统一环境了,
因为docker都打包好了啊~
开一个容器还不到一秒,
环境什么的,别人也都配好了,
我就老老实实写代码就OK了啊,
崩溃了重启嘛,
重启才三秒。
所以,docker就是用来存放应用的一个容器。
就像
杯子可以存水,
笔筒可以放笔,
酒瓶可以盛酒,
书包可以装书,
相机可以存照片,
电脑可以放小电影,
一样。
docker就跑应用的一种容器。
更轻量,更简单,更快速,更,好玩。
啥?你还不懂? 来来来,小伙子 我给你看个宝贝!!(一砖头拍死你@!)
毕竟咱们是正规军,也得来点正规语言啥的,, ,, 啥的,, ,, 你说啥??
企业部署 Docker 还是本文的个人 Docker 用例,都提到了这个情况。因为环境配置不同,很多人在开发中也会遇到这个情况,甚至开发的软件到了测试人员的机器上便不能运行。但这都不是重点。重点是,如果我们有一个可靠的、可分发的标准开发环境,那么我们的开发将不会像现在这么痛苦。Docker 便可以解决这个问题。Docker 镜像并不会因为环境的变化而不能运行,也不会在不同的电脑上有不同的运行结果。可以给测试人员提交含有应用的 Docker 镜像,这样便不再会发生“在我机器上是可以运行的”这种事情,很大程度上减轻了开发人员测试人员互相检查机器环境设置带来的时间成本。
另一个 Docker 可以发挥用处的地方是培训班。除了 Docker 容器的隔离性之外,更能体会到 Docker 优势的地方在于环境搭建。培训班的新手每个人都要在环境搭建上花费很多时间,但是如果在这里应用到 Docker 的话,那么我们只需要把标准的运行环境镜像分发下去,然后就可以开始上课了。使用 Docker 和使用虚拟机一样简单,但是 Docker 要更方便、更轻量级。同时,我们也可以告诉学员:“在培训的同时,我们还将学到当下最流行的技术——Docker”,这种双赢的结局,何乐而不为呢。
虚拟机的粒度是“虚拟出的机器”,而 Docker 的粒度则是“被限制的应用”,相比较而言 Docker 的内存占用更少,更加轻量级。
对我来说这是 Docker 的一个优势:因为我经常在自己电脑中运行多个 Docker 应用,使用 Docker 比使用虚拟机更加简单,方便,粒度更细,也能持续地跟踪容器状态。
不说了,爱咋咋地。。打了那么久,来瓶82年的纯净水不要贵的那种!