2015-02-09 72 views
6

我有一個從官方mysql docker pull mysql內置的數據庫容器。什麼是在Mac OS X上從boot2docker遷移到Vagrant + NFS的最快方式?

我有一個用Cake製作的前端應用程序app

我有一個用Symfony構建的後端應用程序cms

我有容器連接設置爲appcms以啓動並自動連接到db

一切工作很好,但它與boot2docker超慢。

我一直在嘗試瞭解如何在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--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

+0

也很有幫助:http://www.reddit.com/r/docker/comments/2osgl7/vagrant_vs_boot2docker/與樣本流浪文件http://dumptext.com/vKgOkYFF – phpguru 2015-02-10 20:02:22

回答

17

更新[2015年2月11日]

要回答的更廣泛的問題(一個標題)我已經創建了一個使用Vagrantfile在Github上進行回購,這將使您可以快速輕鬆地在MacOS上啓動Vagrant + Docker + NFS。

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


原來的答覆爲 「TLS:超大記錄收到」 問題[2015年2月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)出口是這樣的指向泊塢窗客戶端向boot2docker VM:

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

然後你指出你的泊塢窗客戶定製的VM映射端口

export DOCKER_HOST=tcp://localhost:2375 

如何解決

短長期

unset 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虛擬機。

+0

真棒,那工作......好吧,我可以運行docker ps -a,但是我一直使用的'db'的docker run命令失敗,原因如下:FATA [0000]來自守護進程的錯誤響應:沒有指定命令 – phpguru 2015-02-10 17:22:24

+0

感謝Github上的Vagrantfile。你使用config.vm.provision:docker do | d |在你的Vagrantfile中?我問,因爲到目前爲止,我有一個運行yungsang/boot2docker映像的空白Vagrantbox,但我不能使用任何docker run命令來實際獲取其中運行的容器和應用程序。 – phpguru 2015-02-12 20:25:07

+0

$ vagrant up $ export DOCKER_HOST = tcp:// localhost:2375 $ docker版本 最後一個命令是否給出錯誤或顯示docker版本信息?如果它沒有失敗,那麼你應該能夠運行你的碼頭的東西。 – 2015-02-13 22:34:51

相關問題