浅谈Docker

最近在上系统分析与设计这门课的时候,pml老师提到了一个神器——docker,听说很强大,后来我就自己去查了查,发现还真的挺好用的,接下来我就来科普一下docker这个强大的工具。

官网的介绍如下所示:

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.

   其实看完这句话还是不明白究竟是啥的,下面就慢慢解释。不过长话短说的话,把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的。当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(ApplicationContainer


   拿现实世界中货物的运输作类比, 为了解决各种型号规格尺寸的货物在各种运输工具上进行运输的问题,我们发明了集装箱,而集装箱就作为容器



Docker的初衷也就是将各种应用程序和他们所依赖的运行环境打包成标准的容器,进而发布到不同的平台上运行

比如我现在想用MySQL那我就找个装好MySQL的容器,运行起来,那么我就可以使用MySQL了。

那有同学会说直接装个MySQL不就好了,何必还需要这个容器这么诡异的概念?话是这么说,可是你要真装MySQL的话可能要再装一堆依赖库,根据你的操作系统平台和版本进行设置,有时候还要从源代码编译报出一堆莫名其妙的错误,可不是这么好装。而且当你的电脑上同时安装了Oracle数据库,MySQLMongoDB的时候,就没这么简单了,会出现报错,这时候要是有容器就能解决这样的问题。



  那么既然容器和VM 这么类似为啥不直接用VM 还要整出个容器这么个概念来呢?Docker 容器相对于VM 有以下几个优点:

1) 启动速度快,容器通常在一秒内可以启动,而VM 通常要更久

2) 资源利用率高,一台普通PC 可以跑上千个容器,你跑上千个VM 试试

3) 性能开销小,VM 通常需要额外的CPU 和内存来完成OS 的功能,这一部分占据了额外的资源


  为啥相似的功能在性能上会有如此巨大的差距呢,其实这和他们的设计的理念是相关的.

VMHypervisor需要实现对硬件的虚拟化,并且还要搭载自己的操作系统,自然在启动速度和资源利用率以及性能上有比较大的开销。

Docker就省了这一步,直接基于主机的操作系统,大大减少了系统资源的开销

              

 由于docker是基于linux的,在ubuntu下安装和使用docker非常方便,不过由于我用mac,更倾向于用mac来开发。
那么问题来了,我怎样让docker在我的mac下运行呢?
其实不难,只要在mac下虚拟一个linux虚拟机就行,可能有同学会觉得这样会很慢,其实我试了下,感觉挺快的,所以不用担心这个问题。
在mac下有两种方式运行mac,一种是通过安装Boot2Docker,然后在命令行中运行docker。
还有一种办法就是安装一个可视化软件Kitematic,这个GUI超级好用,安装好后如下所示:

你就可以直接可视化的搜索和下载各种镜像,nginx、mysql什么的都不是问题!
真心超级好用!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值