找回密码
 立即注册
搜索
查看: 4291|回复: 25

[其他] 看了半天还是没懂Docker,有人能解释下吗

[复制链接]
发表于 2017-4-3 16:55 来自手机 | 显示全部楼层 |阅读模式
炒得火热的Docker,试着装了两次打算用起来,每次都是觉得反而有点多此一举的感觉,又删掉了。
看下来,非Linux环境,Win/Mac要用Docker的话都是要再装个VirtualBox?说好的不需要虚拟机结果又捆绑个虚拟机?黑人问号……那我原来直接跑个虚拟机就行了,现在要跑虚拟机+Docker服务,不是更耗资源?
对于Linux系统可能方便,所以在Win/Mac下的话,如果说要用Docker,我不如直接装个Linux虚拟机在里面跑Docker?
----------------分割线1----------
Docker的镜像和容器的概念。
比如说,传统虚拟机的话,我搭好一个环境,里面装好一堆应用做好配置,整个一个虚拟机文件做好备份,就可以直接拷贝给其他人直接使用。
换到Docker,不知道是不是这么回事:需要的是创建一个基于Linux的运行环境(镜像),在这个镜像上装好配置好各个应用,这一部分算是容器。类比虚拟机的话,大概就是镜像=windows纯净版,容器=安装的那些应用?如果要让别人和我用的东西完全一致的话,可以选择只把若干个容器打包给别人(别人需要去pull和你一致的镜像),也可以选择把镜像和容器重新打包一起给别人?
-------------分割线2----------
感觉太麻烦没有自己pull一套容器下来。请问Docker的镜像和容器文件是些什么样的东西?一堆文件+文件夹+配置文件?还是和虚拟机一样清清爽爽一个文件包?
回复

使用道具 举报

发表于 2017-4-3 20:04 | 显示全部楼层
这东西目标是大面积部署用,就一台机器意义不大的。
回复

使用道具 举报

 楼主| 发表于 2017-4-3 20:34 来自手机 | 显示全部楼层
Jet.Black 发表于 2017-4-3 20:04
这东西目标是大面积部署用,就一台机器意义不大的。

终于有一个回帖…感觉每次在PC区问问题都是冰冰凉😹
我的理解对吗?我还以为用在团队开发和单服务器部署也很有用……这么看的话没必要折腾这东西了
回复

使用道具 举报

     
发表于 2017-4-3 21:04 | 显示全部楼层
本帖最后由 董卓 于 2017-4-3 21:06 编辑

Docker是为了简便部署,并配合微服务化
Docker相当于是部署好实际应用(做得好一般会和CI库直接对接),而且其中应用做好配合Docker的配置化改造,以便需要横向扩展的时候直接由Docker管理扩容

感兴趣的可以搜一下:编排 k8s
回复

使用道具 举报

头像被屏蔽
     
发表于 2017-4-3 23:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2017-4-4 00:52 | 显示全部楼层
很多年前用过vmware thin app,是不是差不多的一个东西
回复

使用道具 举报

     
发表于 2017-4-4 01:12 来自手机 | 显示全部楼层
docker相比虚拟机,在linux下是通过kernel的特性原生实现,比虚拟机更省资源。简单想体验的话跑个kernel3.10以上的发行版比如CentOS7。
docker也是增量的,做好母板可以一层一层往上叠命令。比如选好最下面的系统(红帽系或者debian系或者别的什么,大概只有包管理不太一样,都是精简版的。当然也可以自己做一个),然后往上填命令比如把代码add进去再然后执行。全都写进dockerfile这种配置文件里然后build出来image,然后就能跑了。你拉镜像只会拉你本地没有的那部分。
如楼上所说docker配合k8s这些编排工具后爆炸,基本的环境隔离,资源调度,省心省力。
开发的话大概一个人配好环境别人直接拉下来用就好了。。。单服务器部署多个任务做下资源限制也不错



----发送自 LGE Nexus 5,Android 6.0.1
回复

使用道具 举报

     
发表于 2017-4-4 03:29 | 显示全部楼层
本帖最后由 schneehertz 于 2017-4-4 03:33 编辑

高性能虚拟机+应用快速部署,我是这么理解的
之前在树莓派上安装dokuwiki搞了好久没搞定,nginx,php各种头疼
后来装了docker,一条pull命令就能装好,run一下就能跑起来,省时省力。
回复

使用道具 举报

 楼主| 发表于 2017-4-4 11:41 来自手机 | 显示全部楼层
那其实就只是Linux下用起来相对方便些咯…算了,不折腾了
回复

使用道具 举报

     
发表于 2017-4-4 12:53 来自手机 | 显示全部楼层
单机用当然没有优势,传统虚拟机部署是方便,但是每开一个服务就要装一套系统,配置一套环境,占资源,效率低

—— 来自 HUAWEI EDI-AL10, Android 7.0上的 S1Next-鹅版
回复

使用道具 举报

 楼主| 发表于 2017-4-4 13:05 来自手机 | 显示全部楼层
c月光咖啡 发表于 2017-4-4 12:53
单机用当然没有优势,传统虚拟机部署是方便,但是每开一个服务就要装一套系统,配置一套环境,占资源,效率 ...

虚拟机都是单个文件,一个配置好后直接拷贝使用不需要重新安装配置啊。关键是……Docker也需要弄个VirtualBox跑虚拟机这一点好奇葩啊。
还不如最早的wine呢……那个感觉反而是真正的容器型使用……
回复

使用道具 举报

头像被屏蔽
发表于 2017-4-4 13:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2017-4-4 13:33 | 显示全部楼层
快银 发表于 2017-4-4 13:05
虚拟机都是单个文件,一个配置好后直接拷贝使用不需要重新安装配置啊。关键是……Docker也需要弄个Virtua ...

Docker的优势又不是虚拟机层面,Docker的网络和I/O效率真是……
优势在于与各种编排工具的组合使用,到应用/服务层能够直接扩展
原先的虚拟机哪有把手伸到应用/服务层面的
回复

使用道具 举报

 楼主| 发表于 2017-4-4 13:49 来自手机 | 显示全部楼层
我操你妈 发表于 2017-4-4 13:17
这不废话么,Docker从头到尾都是写在linux上依赖linux内核的东西,win和osx没有这些接口你让他怎么搞
但 ...

谢谢,大致明白了。
我目前这种需求看样子还用不上docker。我想要的是类似wine的东西,可以把环境整个打包成一个文件在一个应用里跑。而不是跑个虚拟机,再跑个docker守护,再跑镜像和容器一大堆……
回复

使用道具 举报

头像被屏蔽
     
发表于 2017-4-4 13:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2017-4-4 14:00 来自手机 | 显示全部楼层
董卓 发表于 2017-4-4 13:33
Docker的优势又不是虚拟机层面,Docker的网络和I/O效率真是……
优势在于与各种编排工具的组合使用,到应 ...

我曾经以为Docker的优势是极大方便多人/设备使用相同的环境/配置,不用进行部署直接复制使用。类似wine和bottle。想来还是太嫩了。如果要用virtualbox,不如直接用效率更高的parallels装个Linux跑,还不会直接在系统里装上一堆乱七八糟的东西
回复

使用道具 举报

     
发表于 2017-4-4 17:21 | 显示全部楼层
win10不也有docker可以直接装
回复

使用道具 举报

     
发表于 2017-4-4 17:31 | 显示全部楼层
本帖最后由 bubuyu 于 2017-4-4 17:45 编辑

现在版本的Docker for Windows 和 Mac 都是基于系统自身的虚拟化技术了(Hyper-V 和 macOS Hypervisor Framework),已经不使用 VirtualBox 了。
回复

使用道具 举报

     
发表于 2017-4-5 10:47 | 显示全部楼层
说白了,docker就是环境+应用,跟虚拟机相比少了个操作系统,适合快速部署大量部署,over~
回复

使用道具 举报

 楼主| 发表于 2017-4-5 11:39 来自手机 | 显示全部楼层
bubuyu 发表于 2017-4-4 17:31
现在版本的Docker for Windows 和 Mac 都是基于系统自身的虚拟化技术了(Hyper-V 和 macOS Hypervisor Fram ...

这个倒是刚知道。这是这次出了企业版之后的事情吗?这种版本变化大的东西资料好难搜啊😹,一搜就是以前的老资料
回复

使用道具 举报

 楼主| 发表于 2017-4-5 11:42 来自手机 | 显示全部楼层
qieyifonger 发表于 2017-4-5 10:47
说白了,docker就是环境+应用,跟虚拟机相比少了个操作系统,适合快速部署大量部署,over~ ...

但是之前的Docker在Mac/Win上都要再弄个VM,还说不需要VM……看楼上的好像现在不需要了?我再看看现在怎么个用法
回复

使用道具 举报

发表于 2017-4-5 11:56 | 显示全部楼层
虚拟机比较"重"但是隔离程度是最好的,因此部署起来也比较蛮,即便你有模板+自动部署程序,起一个虚拟机也是分钟计
docker基本是秒级
当然了,docker本质上...都不能算虚拟机...隔离程度还没KVM好,你理解为一个绿色软件好了...想开几个开几个...
回复

使用道具 举报

头像被屏蔽
     
发表于 2017-4-5 13:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
发表于 2017-4-6 07:31 | 显示全部楼层
一般用来做QA+CI+staging
生产里面我们也是不用的 因为container之间的通讯和expose接口(host 模式) 其实都会走一层container network
这个东西会损失一定的性能 所以效率上还是不如baremetal得
用在小app的产品是可以 大型的后端是没办法跑的

比较好的应用其实是S1这里 配合k8i 可以大大概增强服务器的使用效率 而且结构十分简单 有空可以做个玩玩
回复

使用道具 举报

 楼主| 发表于 2017-4-6 12:52 来自手机 | 显示全部楼层
風舞雪 发表于 2017-4-6 07:31
一般用来做QA+CI+staging
生产里面我们也是不用的 因为container之间的通讯和expose接口(host 模式) 其实都 ...

哇……好像看到了什么不得了的回复…
对比了下,确实目前来看没必要用到。回归平静~
回复

使用道具 举报

     
发表于 2017-4-6 16:54 | 显示全部楼层
我这边看下来,docker的优势是快速部署,你一个应用有镜像了,用这个镜像部署几个容器,比如前台应用,然后监控容器的负载,当负载不够了立马起动新的容器扩容,整个流程做成自动的话比起虚拟机快多了,秒级别的。反正就是高可用么,可以跨云的集群,感觉高大上,老好的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-18 00:18 , Processed in 0.152776 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表