在Mac OS X上从boot2docker迁移到Vagrant + NFS的最快方式是什么?

我有一个数据库容器,从官方mysql docker pull mysqlbuild成。

我有一个用Cake构build的前端应用app应用app

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

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

一切都很好,但是boot2docker的速度非常慢。

我一直在试图了解如何使用NFS与stream浪汉。

网上有几个不同的教程和例子,但到目前为止,我一直无法前进。 我已经安装了最新的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 Xterminal运行docker命令。 很显然,我误解了一些东西。 另外,Vagrant博客上的教程使用rsync--provider=docker ,这似乎也不需要使用yungsang / boot2docker vagrant框。

我会感激一些指导,感觉我已经用尽了我的Googlesearchfunction。

参考文献:

https:/ / vagrantcloud。 COM / yungsang /盒/ boot2docker

更新[2015-02-11]

为了回答更广泛的问题(标题中的问题),我使用Vagrantfile在Github上创build了一个回购协议,可以让您从MacOS上的Vagrant + Docker + NFS快速轻松地入手。

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


“tls:过大的logging收到”问题的原始答复[2015-02-10]

问题

检查你的环境variables。 你很可能有boot2docker shellinit和你自定义的DOCKER_HOSTvariables的混合。 例如:

 $ env|grep DOCKER DOCKER_HOST=tcp://localhost:2375 DOCKER_CERT_PATH=/Users/<user>/.boot2docker/certs/boot2docker-vm DOCKER_TLS_VERIFY=1 

你在这里得到的原因是$(boot2docker shellinit)导出这样的东西,将docker客户端指向boot2docker虚拟机:

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

然后你用你的Docker客户端指向自定义的VM映射端口

 export DOCKER_HOST=tcp://localhost:2375 

怎么修

短期

unset DOCKER_TLS_VERIFY

长期

在你的.bashrc$(boot2docker shellinit)等文件中删除$(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)会覆盖variables并将DOCKER_HOST设置为指向boot2docker虚拟机。