我有一个从官方mysql docker pull mysql
构建的数据库容器。
我有一个用Cake构建的前端应用程序app
。
我有一个用Symfony构建的后端应用程序cms
。
我为app
和cms
都设置了容器链接,以启动并自动连接到db
。
一切都很好,但是使用boot2docker super 慢。
我一直在尝试了解如何在NFS中使用Vagrant。
在线上有一些不同的教程和示例,但是到目前为止,我仍然无法继续。我已经安装了最新的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
更新[2015-02-11]
为了回答更广泛的问题(标题中的问题),我在Github上创建了一个带Vagrantfile的存储库,使您可以快速轻松地从Mac上的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/<user>/.boot2docker/certs/boot2docker-vm
DOCKER_TLS_VERIFY=1
$(boot2docker shellinit)
导出了类似这样的内容,以将Docker客户端指向boot2docker VM:DOCKER_HOST=tcp://192.168.59.103:2376
DOCKER_CERT_PATH=/Users/<user>/.boot2docker/certs/boot2docker-vm
DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://localhost:2375
unset DOCKER_TLS_VERIFY
$(boot2docker shellinit)
,.bashrc
等文件中的.zshrc
,并在需要时手动执行它,或者在其中按以下顺序进行操作:# Docker (default for Vagrant based boxes)
export DOCKER_HOST=tcp://localhost:2375
# boot2docker shellinit
$(boot2docker shellinit)
DOCKER_HOST
将默认为tcp://localhost:2375
。$(boot2docker shellinit)
将覆盖变量,并将DOCKER_HOST
设置为指向boot2docker VM。
关于docker - 在Mac OS X上从boot2docker迁移到Vagrant + NFS的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28421391/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://www.ogeek.cn/) | Powered by Discuz! X3.4 |