virtual-machine - Vagrant 和/或 Docker 工作流程与完整的 OS X 文件系统集成以获得无缝的本地感觉?

标签 virtual-machine vagrant development-environment docker boot2docker

最近我一直在尝试 vagrantdocker。这些都是非常有趣的工具,但我还无法说服自己这是在我的 OS X 机器上使用的方法。作为一个老 Unix 帽子,我不得不说我喜欢有一个用于开发目的的整合的沙盒环境。

我看到了很多讨论,很多 friend 一直在使用 vagrant 和普通的 vim 进行编辑。我并不是真正喜欢这种方法,并且可能更喜欢使用虚拟机提供商的共享机制,或者更有可能的是 NFS。

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

有什么方法可以真正降低工作流程,以便这样的环境本质上就像在本地环境中工作一样,而不必拉动大量额外的背景字符串来使事情顺利进行?

我认为一些放置得当的脚本可能会大有帮助,但我还没有找到任何可靠的答案来真正使其成为一个无缝的环境。

最佳答案

真正对我有用的是使用 boot2docker这使得安装一个轻量级虚拟机(带有 VirtualBox)变得很容易,该虚拟机将托管您的 docker deamon 和镜像。要运行 docker 命令,您唯一需要的就是在打开新终端时运行 $(boot2docker shellinit)。

如果您还需要将文件放在 OS X 文件夹中并与正在运行的 docker 镜像共享它们,则需要一些额外的设置,但一旦完成,您就不必再次执行此操作。 看看here有关如何操作的精彩演练。简而言之,步骤是:

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

    VBoxManage 共享文件夹添加 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

我还没有找到如何克服的一个小烦恼是您不再通过本地主机访问您的软件,因为它实际上在 boot2docker 实例上运行。您必须运行 boot2docker ip 并访问该 IP。

希望有帮助!

关于virtual-machine - Vagrant 和/或 Docker 工作流程与完整的 OS X 文件系统集成以获得无缝的本地感觉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25678544/

相关文章:

docker - 在 VMWare 托管的 Windows 10 计算机上运行 Docker 容器时出错

linux - 从仪表板更改 Ubuntu Azure VM 上的 ssh key

sql-server - SQL Azure 速度很慢

使用 Hyper-V 的 Windows 10 上的 Vagrant 错误

python - docker 内的GAE。不能暴露8080

vagrant - 将文件从主机复制到 vagrant 虚拟机

vagrant - 使用 VirtualBox + Vagrant + Homestead 的时间不同步

laravel - 为什么 Homestead 在没有指定的情况下默认运行 apache?

mysql - 开发中的最佳实践Mysql配置?

python - 在同一项目中的应用程序之间传递 url