更新[2015-02-11]
为了回答更广泛的问题(标题中的问题),我在 Github 上使用 Vagrantfile 创建了一个存储库,它可以让您快速轻松地在 MacOS 上开始使用 Vagrant+Docker+NFS。
https://github.com/blinkreaction/boot2docker-vagrant 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
然后,您将 docker 客户端指向自定义 VM 映射端口
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)
这样如果 boot2docker 没有运行,你的DOCKER_HOST
将默认为tcp://localhost:2375
.
否则$(boot2docker shellinit)
将覆盖变量并设置DOCKER_HOST
指向 boot2docker 虚拟机。