Docker 真的好吗

2015-11-26 21:39:32 +08:00
 az
比如,现在我的网站是搭在云 VPS 上的, Ubuntu 系统,系统配置也就几个命令,难道换成 Docker 会更好?
9790 次点击
所在节点    Docker
23 条回复
some0ne
2015-11-26 21:46:39 +08:00
比如,现在我家的服装店是自己开车去批发市场进货,我一个人往车上搬就够了,难道换成集装箱会更好?
mianju
2015-11-26 21:51:05 +08:00
但是吧,比如你想尝试某个一套的东西,比如一个小房间。你是想自己花大把时间来搭一下呢,还是整个现成的先去体验一下呢?
seiwev
2015-11-26 21:53:04 +08:00
@mianju 这个就看是不是爱折腾了。
odirus
2015-11-26 22:02:25 +08:00
不能一概而论哦,这个看个人情况吧,我的个人网站就是通过 docker + 私有 git 项目 来自动备份的,即使换一台 VPS ,也可以分分钟自动重新部署好。
gam2046
2015-11-26 22:03:06 +08:00
如果是采用群集呢?你现有的方式就会很繁琐了,而且不利于后期维护。
elgoog1970
2015-11-26 22:07:09 +08:00
你首先要知道为什么使用 Docker , Docker 的优势在哪里
nekoyaki
2015-11-26 22:16:52 +08:00
docker 不是万灵药,有它自己的适用场景,同时,为了得到这些好处,也是要付出一些代价的。
对开发来说,它可以让你比较轻易地分出一个隔离环境,比传统的虚拟机方式速度快、吃资源也要少。
对部署来说,它可以让你非常容易和方便地以所谓的“容器化”的方式去部署应用。
但是他当然是有代价的。比如磁盘性能不够、学习成本等等。如果你根本不需要它带来的这些优势,那么很显然它对你来说就没有意义,这是实话实说。
我们不像*某些*vagrant 吹,看见别人不管问什么,不管场景合适不合适,都只会甩下一句 vagrant ,丝毫不提代价和适用场景。
az
2015-11-26 22:25:57 +08:00
@nekoyaki 分析的蛮有道理的。目前所有的项目统一在 Ubuntu server 环境,并不需要隔离。如果弄 ubuntu 上装 docker ,反而影响性能。
az
2015-11-26 22:26:59 +08:00
@some0ne 这个比喻蛮有道理的。个体户,搞 docker 反而不好的。
Tink
2015-11-26 22:27:55 +08:00
未必,有些情况没必要上 docker
buckethead1
2015-11-26 22:28:26 +08:00
是啊
如果你新开个 vps ,想部署同样的网站怎么办?
存个镜像然后新建?显然 docker 更方便
i1173081
2015-11-26 22:31:25 +08:00
docker 到底是个什么东西。为什么到处都在用。我隐约记得 docker 是个用来隔离的东西啊
KyleMeow
2015-11-26 22:37:40 +08:00
可以先体验一下它,然后再决定。我挺喜欢它的隔离性,就和集装箱一样,打包运走了再在其他服务器上部署很容易,不至于换服务器后发现各种配置文件散落一地。可以说与主机的耦合性低。
crowds
2015-11-26 22:41:32 +08:00
当然会了 这可是万能而且高大上 docker
什么? 你还在服务端敲命令? 太 low~~
docker run 不是命令?
docker 的命令怎么能叫命令,集装箱你懂吗?鲸鱼你懂吗?
nekoyaki
2015-11-26 22:45:55 +08:00
@i1173081
是隔离用的。
但是 docker 的隔离带来了不少好处,比如说
1 、真的很轻量,不管是磁盘占用还是内存占用还是启动速度。
2 、可以虚拟出其他发行版的 linux 环境,看起来就像个小虚拟机一样。这样我只要对外暴露服务就行了,不用管我到底需要用啥样的服务器,反正到时候直接把容器部署上去就行了。
3 、便于写脚本、快速增加节点。
4 、分发起来也容易。
5 、它有一点 git 的思想,有这种“ commit ”、“ tag ”等概念,习惯了之后可以当成类似虚拟机快照一样的功能,也很方便。

当然肯定也有对应的代价就是了。所以对于不需要隔离、不需要批量部署的情况下,根本用不着 docker 。有些东西十年都不会重新部署一次,有些东西随时可能加节点。
znoodl
2015-11-26 22:49:19 +08:00
你发在云计算节点,和 Docker 也很大关系,但是你一个小网站和云计算有什么关系?

有,你的网站是搭建在别人部署好的云上面的……
janxin
2015-11-26 23:19:00 +08:00
抛开场景谈价值不是耍流氓嘛…
slixurd
2015-11-26 23:21:59 +08:00
我司用 Docker 作发布前的编译隔离环境,编译结束后再把文件 SSH 到线上服务器上部署。
i1173081
2015-11-27 00:33:11 +08:00
@nekoyaki 这里说的运行其他发行版是不是只运行了其它发行版的用户态程序啊,内核还是共享吧。
还有网络也可以单独搞一套是吧,我看了一下,这个东西是不是相当于利用 namespace cgroup 等东西成为一个增强的 chroot 呢。 另外 go 实现的 docker 用源码安装挺不方便的,有 C 实现的版本么,只用基本功能就行。
Laforet
2015-11-27 05:19:50 +08:00
@znoodl

在 VM 上重复部署容器确实挺蛋痛的

<amp-youtube data-videoid="coFIEH3vXPw" layout="responsive" width="480" height="270"></amp-youtube>

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/239234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX