V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
SharkIng
V2EX  ›  问与答

Docker puppet vagrant 有什么区别/优缺点/不同之处不同用法等?

  •  
  •   SharkIng · 2015-02-04 08:53:55 +08:00 · 5746 次点击
    这是一个创建于 3580 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前接触过puppet,用过vagrant
    最近在看关于docker的东西,但是不知道为什么突然感觉docker和上面两个其中一个很像,也不知道是哪个?

    所以想了解下,用过这三个东西的朋友们,能不能详细说明下三个东西的不同之处及优缺点什么的?

    PS:因为平时都不是很常用以上三个东西,都只能说略懂,所以求轻喷
    13 条回复    2015-02-04 11:52:18 +08:00
    tabris17
        1
    tabris17  
       2015-02-04 09:05:45 +08:00   ❤️ 1
    puppet是自动化部署,vagrant是虚拟机管理软件,依托于vb、vm等虚拟机软件,docker是一个虚拟执行环境,利用linux内核特性,实现一个半虚拟化的环境,这个环境能够方便地在各台主机上迁移和执行
    9hills
        2
    9hills  
       2015-02-04 09:37:24 +08:00 via iPhone
    三个定位完全不同的东西
    helone
        3
    helone  
       2015-02-04 09:44:06 +08:00   ❤️ 1
    vagrant其实就是虚拟机,依赖几个虚拟机软件,更适合开发环境,打包的镜像也比较大,因为他就是整个虚拟机,包括驱动什么的都要打包
    docker是个容易,只需要Linux内核就可以运行,可以方便的迁移,保存和复制,更适合生产环境部署,应用隔离等
    puppet没接触过
    xuxu
        4
    xuxu  
       2015-02-04 09:47:13 +08:00   ❤️ 1
    这个问题太高深了
    1. docker是容器,用来虚拟程序运行环境
    2. puppet是运维自动化部署工具
    3. vagrant是虚拟机管理工具,依赖虚拟机

    如果非要说像, docker和vagrant都可以用来管理运行程序需要的环境。
    0bit
        5
    0bit  
       2015-02-04 10:07:03 +08:00   ❤️ 1
    最近折腾了一下docker,还是觉着开发环境用vagrant最省心
    SharkIng
        6
    SharkIng  
    OP
       2015-02-04 10:11:48 +08:00
    @xuxu 因为看到说docker可以很容易的迁移环境,那么难道不是可以理解为类似puppet么?自动化在不同机子上部署相同的环境?
    tini9
        7
    tini9  
       2015-02-04 10:23:09 +08:00
    docker不适合程序员
    xuxu
        8
    xuxu  
       2015-02-04 10:58:02 +08:00   ❤️ 1
    @SharkIng
    分层说:
    vagrant 管的是虚拟机
    puppet 处理的是程序部署
    docker 打包程序依赖环境
    tabris17
        9
    tabris17  
       2015-02-04 11:00:50 +08:00   ❤️ 1
    @SharkIng puppet你就理解为一种批处理脚本吧,和docker完全没有关系
    kofj
        10
    kofj  
       2015-02-04 11:14:09 +08:00   ❤️ 2
    @SharkIng puppet没用过,暂且不谈.说说docker和vagrant吧.首先docker和vagrant就不是一类工具,非要找类似的话,boot2docker和vagrant算是一类吧,都是管理虚拟机的,只不过boot2docker也就只能使用boot2docker这么一个box.
    先看看docker的官方定义:An open platform for distributed applications for developers and sysadmins.清晰明了,docker是个平台.至于vagrant,官方只是说了它能做什么:Create and configure lightweight, reproducible, and portable development environments.按我理解它只是个开发环境的配置管理工具.一平台一工具,两者的区别显现出来了.至少对我来说,vagrant跑起来后box里面只是个开发环境,和实际的生产环境还是有着差异的.至于docker,配置的好的话,你的开发环境和应用是能够直接打包丢进生成环境使用的,相交于vagrant能够再进一步的提高生产效率,避免生产\测试\开发环境之间的差异而造成的各种问题.相信大家应该是遇见过这种问题的:测试组的同事来找你,报一堆奇怪的bug,而你在开发环境里面怎么都复现不了这些bug.
    Vagrant was started in January 2010,docker launched in March 2013.显而易见,docker更年轻,作为新生事物也并不完善,据说是目前最好docker管理工具shipyard个人觉的其实并不好用,给人的感觉实在是太简陋了.vagrant作为一个管理工具对我来说还是比较好用的,网上一堆现成的box可以下载,比如说Laravel官方提供的Homestead能够让新手更容易的入门,不至于因为开发环境部署问题而止于门外.Docker官方仓库现在虽说有不少的镜像提供,但更多的是基础镜像.不过你要是熟悉以后,docker相对而言其实更方便,shipyard在官方仓库有镜像提供.gogs则是提供dockerfile.
    简单说,docker可以提供一条龙服务.vagrant则是让你在家(本机)玩儿的更开心.
    咦~我怎么闻到一股知乎的味道.不行,得加条规则屏蔽了它.最后AD一下,v社有收人的嘛?本人会PHP,最近新开始学Laravel(惊叹),golang(能看懂,会写点,beego用的心塞,效率低下).
    binux
        11
    binux  
       2015-02-04 11:37:35 +08:00
    昨天还看到有人在知乎上问,docker 和 virtualenv 有什么区别。
    这些东西都有什么相同点啊!
    hahastudio
        12
    hahastudio  
       2015-02-04 11:44:59 +08:00
    @binux 隔离了“命名空间”?
    jyoe
        13
    jyoe  
       2015-02-04 11:52:18 +08:00   ❤️ 1
    与其从某个环境把code拔下来 不如把整个环境都拿下来测试要来的准。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2711 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:02 · PVG 23:02 · LAX 07:02 · JFK 10:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.