我有一个从官方mysql docker pull MysqL构建的数据库容器.
我有一个用Cake构建的前端应用程序应用程序.
我有一个用Symfony构建的后端应用程序cms.
一切都很好但是boot2docker的速度非常慢.
我一直在努力了解如何在NFS中使用Vagrant.
网上有一些不同的教程和例子,但到目前为止我一直无法上手.我已经安装了最新的Vagrant并使用了示例yungsang / boot2docker但是当我尝试最简单的命令docker镜像时,我不断收到FATA等错误[0000]尝试连接时出错:Get https:// localhost:2375 / v1.16 / images / json:tls:收到超长记录,长度为20527.
我发现如果我流入虚拟机,我可以运行docker图像等,但这不是我想要的;我习惯直接从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
为了回答更广泛的问题(标题中的那个),我在Github上创建了一个带有Vagrantfile的repo,它可以让你快速轻松地在MacOS上开始使用Vagrant Docker NFS.
https://github.com/blinkreaction/boot2docker-vagrant
对“tls:超大记录收到”问题的原始答案[2015-02-10]
问题
检查您的环境变量.你很可能混合使用boot2docker shellinit和那里的自定义DOCKER_HOST变量.例如.:
$env|grep DOCKER
DOCKER_HOST=tcp://localhost:2375
DOCKER_CERT_PATH=/Users/
你到这里的原因是首先$(boot2docker shellinit)导出类似这样的东西将docker客户端指向boot2docker VM:
DOCKER_HOST=tcp://192.168.59.103:2376
DOCKER_CERT_PATH=/Users/
然后,您将docker客户端指向自定义VM映射端口
export DOCKER_HOST=tcp://localhost:2375
怎么修
短期
取消设置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 VM.