Virtual machine Vagrant和/或Docker工作流与完整的OS X文件系统集成,实现无缝本地体验?

Virtual machine Vagrant和/或Docker工作流与完整的OS X文件系统集成,实现无缝本地体验?,virtual-machine,vagrant,development-environment,docker,boot2docker,Virtual Machine,Vagrant,Development Environment,Docker,Boot2docker,最近我一直在涉猎vagrant和docker。这些都是非常有趣的工具,但我还没能说服自己,在我的OSX机器上,这是一条非常可行的道路。作为一个老Unix帽,我不得不说我喜欢有一个用于开发目的的整合和沙盒环境 我看到了很多聊天,很多朋友都在使用vagrant和just stockvim进行编辑。我并不真正喜欢这种方法,可能更喜欢使用vm提供商的共享机制,或者更可能是NFS 就个人而言,我希望能够直接在TextMate、SublimiteText、Emacs(在OS X上)中进行编辑,甚至可能使用R

最近我一直在涉猎
vagrant
docker
。这些都是非常有趣的工具,但我还没能说服自己,在我的OSX机器上,这是一条非常可行的道路。作为一个老Unix帽,我不得不说我喜欢有一个用于开发目的的整合和沙盒环境

我看到了很多聊天,很多朋友都在使用
vagrant
和just stock
vim
进行编辑。我并不真正喜欢这种方法,可能更喜欢使用vm提供商的共享机制,或者更可能是NFS

就个人而言,我希望能够直接在TextMate、SublimiteText、Emacs(在OS X上)中进行编辑,甚至可能使用RubyMine及其各种IDE功能,等等

是否有任何方法可以真正让工作流停止工作,从而使这样的环境本质上类似于在本地环境中工作,而无需拉动大量额外的背景字符串来完成工作


我想一些位置合适的脚本可能会有很大帮助,但我还没有找到任何可靠的答案来真正实现无缝环境。

对我来说,真正有效的方法是使用它来轻松安装一个轻量级虚拟机(带有VirtualBox),它将托管docker deamon和图像。要运行docker命令,您只需在打开新终端时运行$(boot2docker shellinit)

如果您还需要将文件放在OSX文件夹中,并与正在运行的docker映像共享,则需要进行一些额外的设置,但一旦这样做,您就不必再这样做了。 看一看关于如何做的精彩演练。简而言之,这些步骤是:

  • 获取一个特殊的boot2docker映像,该映像允许您为VirtualBox使用共享文件夹
  • 将VirtualBox配置为共享文件夹:

    VBoxManage sharedfolder添加boot2docker vm-name home-hostpath/Users

    这将与托管docker的boot2docker映像共享您的/Users文件夹

  • 从Mac将所需文件夹与docker映像中的文件夹共享,如:

    docker run-it-v/Users/me/dev/my project:/root/src:rw ubuntu/bin/bash

我还没有发现如何克服的一个小麻烦是,您不再通过localhost访问您的软件,因为它实际上运行在boot2docker实例上。您必须运行
boot2dockerip
并访问该ip


希望有帮助

Docker并不是真正用于那个用例的,尽管它可以调整以适应开发环境。我建议研究基于Git/CI的工作流,因为在本地使用docker进行沙箱处理会带来很多小麻烦。如果你真的想要沙箱,使用流浪者。如果您想要高度便携的微服务,请使用docker。很高兴对这些内容进行扩展,或者您可以在irc上查看#docker以了解更多信息!Re localhost access:如果要从主机的本地主机访问docker容器的公共端口,则需要让虚拟机为您转发boot2docker端口。有关执行此操作的详细信息,请参见。