V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
oska874
V2EX  ›  Docker

boot2docker 就是在非 linux 平台运行一个 virtualbox?

  •  
  •   oska874 · 2015-09-17 11:48:46 +08:00 · 4769 次点击
    这是一个创建于 3374 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没事看了下 boot2docker (现在改名成 Docker Toolbox ),发现它依赖 vbox ,是不是可以这样说, boot2docker 就是在 windows/mac 下用 vbox 运行 linux ,再跑 docker ? --当然实际工作远不如说的这么简单。
    如果这样的话,就和 vagrant 挺像的,用 vagrant 也可以跑 docker 。

    7 条回复    2015-09-21 16:43:01 +08:00
    nekoyaki
        1
    nekoyaki  
       2015-09-17 20:36:50 +08:00
    是。
    docker 依赖 linux 的特性,其他平台要想跑个 docker 就得开虚拟机。主要是为了本地开发调试方便,实际线上环境肯定没有这么干的。 vagrant 的方式和它有点类似,也是调用 vbox ,不过 vagrant 的用途比较广泛了。
    跑题一下,我个人其实并不喜欢拿 vagrant 来当什么开发环境的做法。如果说拿着玩意来搞本地开发环境的话……我觉得还不如直接导出虚拟机,然后直接用 vbox 导入。我也见过好几个人这么用 vbox 结果踩了坑。我觉得 vagrant 的唯一正确使用方式是在一台大物理机上快速部署多个虚拟机。

    我问过其中一个踩坑的朋友为什么要折腾 vagrant ,为何不直接用 vbox 啊?他说看论坛上都说 vagrant 拿来做开发环境很好。我跟他说你 TM 傻逼啊,他说好你就信?有些人不管什么帖子不管合适不合适都喊一嘴 vagrant 的。你直接导出虚拟机,谁要这个镜像,直接图形界面点点再导入不就得了,用费这功夫?
    此君说,我操对哦,我 TM 傻逼哦。
    oska874
        2
    oska874  
    OP
       2015-09-17 21:37:04 +08:00
    @nekoyaki 我起初以为 boot2docker 是用 qemu 这类工具实现的,结果我猜错了。
    不过 vagrant 真要比直接使用 gui 方便,几条命令就好了。再不行服务器房一个镜像其他人直接用命令下载回来,出错了直接重新下载就行,反正数据都放在共享文件夹,没啥影响。到目前为止,也没遇见啥坑?
    nekoyaki
        3
    nekoyaki  
       2015-09-17 21:55:28 +08:00
    @oska874
    实际上不是所有人都知道 vagrant 是个什么东西,但是他们点 vbox 的时候,图形界面本身就是说明。
    比如假如我是一个 windows 用户,而且是 nodejs 新手,但是我的团队希望我学习在 linux 上开发 nodejs 。
    那么我是应该先搞明白 vagrant 是什么、怎么下载、 vbox 是什么、怎么下载、如何输入命令吗?
    那么如果出错了怎么办?如果命令 path 不对怎么办?当前路径不对怎么办?不知道怎么呼出 cmd 怎么办?(别笑,我见过这样的例子)
    很显然,我应该直接去下载 vbox ,然后问 leader 要虚拟机镜像,我自己对着图形界面点几步就行了。

    要知道,如果考虑到学习成本和初学者,那么在很多情况下,一次性的任务用 cli 而不是 gui ,就有点拿导弹打蚊子的嫌疑了。
    nekoyaki
        4
    nekoyaki  
       2015-09-17 21:57:02 +08:00
    @oska874 其实我也不是说 vagrant 不好,只是有些 vagrant 用户有点过分了,不管场景合适不合适,直接进去说 vagrant 。
    oska874
        5
    oska874  
    OP
       2015-09-17 22:36:19 +08:00
    @nekoyaki 对, vagrant 不是万能的,肯多场景下用了反而会帮倒忙。但是你说的这个场景就适合 vagrant :屏蔽了 vbox ,先有一个各方面都熟悉的人吧环境配好(比如 path 之类的),然后新人直接用配置好的 vagrant 的命令行就行了。。。当然了,连命令行都不会用,我也无奈了,给了 gui 也不见得他能用好。
    nekoyaki
        6
    nekoyaki  
       2015-09-17 23:01:10 +08:00
    @oska874
    再说下去就跑题了 hhhh
    我说的那个场景,最后那哥们跟我说:直接用 vbox 搞了,点个鼠标完事儿,懒得折腾那个哇什么玩意的了。
    daben1990
        7
    daben1990  
       2015-09-21 16:43:01 +08:00
    我的开发环境是这样子的,
    在 imac 上,安装 boot2docker ,拉取 centos 镜像,并在容器中,安装了 php , nodejs 环境,
    开发的时候,用 ssh 命令进入容器,编辑代码, imac 只需要绑定 hosts 就好了。
    然后也遇到一个问题就是,在 container 中,读写速度会变慢。
    例如 fs.read 这个命令会明显比直接在 imac 主机运行慢很多。
    想用容器的原因就是,争取环境配置统一化。能够专注在写代码,而不是长时间的环境配置
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5034 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 08:48 · PVG 16:48 · LAX 00:48 · JFK 03:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.