2015-02-09 65 views
6

我有一个从官方mysql docker pull mysql内置的数据库容器。什么是在Mac OS X上从boot2docker迁移到Vagrant + NFS的最快方式?

我有一个用Cake制作的前端应用程序app

我有一个用Symfony构建的后端应用程序cms

我有容器连接设置为appcms以启动并自动连接到db

一切工作很好,但它与boot2docker超慢。

我一直在尝试了解如何在NFS中使用Vagrant。

网上有几个不同的教程和示例,但到目前为止,我一直无法前进。我已经安装了最新的无业游民和使用的例子yungsang/boot2docker但是当我尝试最简单的命令docker images我一直喜欢FATA[0000] An error occurred trying to connect: Get https://localhost:2375/v1.16/images/json: tls: oversized record received with length 20527.

得到错误,我发现,如果我vagrant ssh到虚拟机,我可以运行docker images和这样的,但是这不是什么我想了;我习惯于直接从Mac OS X终端运行docker命令。很显然,我误解了一些东西。另外,Vagrant博客上的教程使用rsync--provider=docker,这似乎也不需要使用yungsang/boot2docker vagrant框。

我会感激一些指导,感觉我已经耗尽了我的Google搜索功能。

参考文献:

https://www.vagrantup.com/blog/feature-preview-vagrant-1-6-docker-dev-environments.html https://github.com/boot2docker/boot2docker/issues/64 https://vagrantcloud.com/yungsang/boxes/boot2docker

+0

也很有帮助:http://www.reddit.com/r/docker/comments/2osgl7/vagrant_vs_boot2docker/与样本流浪文件http://dumptext.com/vKgOkYFF – phpguru 2015-02-10 20:02:22

回答

17

更新[2015年2月11日]

要回答的更广泛的问题(一个标题)我已经创建了一个使用Vagrantfile在Github上进行回购,这将使您可以快速轻松地在MacOS上启动Vagrant + Docker + NFS。

https://github.com/blinkreaction/boot2docker-vagrant


原来的答复为 “TLS:超大记录收到” 问题[2015年2月10日]

检查你的环境变量的问题。您最有可能混合了boot2docker shellinit和您的自定义DOCKER_HOST变量。例如。:

$ env|grep DOCKER 

DOCKER_HOST=tcp://localhost:2375 
DOCKER_CERT_PATH=/Users/<user>/.boot2docker/certs/boot2docker-vm 
DOCKER_TLS_VERIFY=1 

你来到这里的原因是第一$(boot2docker shellinit)出口是这样的指向泊坞窗客户端向boot2docker VM:

DOCKER_HOST=tcp://192.168.59.103:2376 
DOCKER_CERT_PATH=/Users/<user>/.boot2docker/certs/boot2docker-vm 
DOCKER_TLS_VERIFY=1 

然后你指出你的泊坞窗客户定制的VM映射端口

export DOCKER_HOST=tcp://localhost:2375 

如何解决

短长期

unset DOCKER_TLS_VERIFY

长期

无论是在你的.bashrc.zshrc等文件摆脱$(boot2docker shellinit),并按照以下顺序有需要时手动执行它还是有它:

# Docker (default for Vagrant based boxes) 
export DOCKER_HOST=tcp://localhost:2375 

# boot2docker shellinit 
$(boot2docker shellinit) 

这样,如果boot2docker未运行,您的DOCKER_HOST将默认为tcp://localhost:2375
否则$(boot2docker shellinit)将覆盖变量并将DOCKER_HOST设置为指向boot2docker虚拟机。

+0

真棒,那工作......好吧,我可以运行docker ps -a,但是我一直使用的'db'的docker run命令失败,原因如下:FATA [0000]来自守护进程的错误响应:没有指定命令 – phpguru 2015-02-10 17:22:24

+0

感谢Github上的Vagrantfile。你使用config.vm.provision:docker do | d |在你的Vagrantfile中?我问,因为到目前为止,我有一个运行yungsang/boot2docker映像的空白Vagrantbox,但我不能使用任何docker run命令来实际获取其中运行的容器和应用程序。 – phpguru 2015-02-12 20:25:07

+0

$ vagrant up $ export DOCKER_HOST = tcp:// localhost:2375 $ docker版本 最后一个命令是否给出错误或显示docker版本信息?如果它没有失败,那么你应该能够运行你的码头的东西。 – 2015-02-13 22:34:51

相关问题