az
V2EX  ›  Docker

Docker 真的好吗

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

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

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

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

    vietor
        21
    vietor  
       Nov 27, 2015 via Android
    新技术更新太快,先弄需求再弄环境。 docker 这东西的初衷是一种 VM 的改进系统,场景与 VM 重合。在 VM 上再起 docker 是一种 YY 。
    az
        22
    az  
    OP
       Nov 27, 2015
    @vietor 也觉得是,如果有直接卖 docker 的,才好和 VM 竞争。
    vitovan
        23
    vitovan  
       Nov 27, 2015 via Android
    我这有一个典型的应用场景: PhantomJS

    这厮的 Linux 版本没有提供二进制包,需要自行编译。

    于是我下载了将近一个多 G 的源码进行编译,在我本机上编译了近一个小时。

    放到生产服务器上,不能用,依赖包有问题。

    于是放到服务器上编译,一觉醒来被 Kernel 杀了。

    后来上了 Docker ,一个命令,就装好了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3229 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 12:51 · PVG 20:51 · LAX 05:51 · JFK 08:51
    ♥ Do have faith in what you're doing.