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

2024-05-16

我有一个从官方 mysql 构建的数据库容器docker pull mysql.

我有一个前端应用程序app用蛋糕建造。

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

我为两者都设置了容器链接app and cms自动启动并连接到db.

一切都很好,但是 boot2docker 速度超级慢。

我一直在尝试了解如何将 Vagrant 与 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 and --provider=docker这似乎也没有必要使用 yungsang/boot2docker vagrant box。

我将很感激您提供一些指导,并且感觉我在这方面已经用尽了我的谷歌搜索功能。

Refs:

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


更新[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 虚拟机。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mac OS X 上从 boot2docker 迁移到 Vagrant+NFS 的最快方法是什么? 的相关文章

随机推荐