最近要為新專案建立開發與測試環境,就想說那就趁機來玩一玩Docker 吧!不然都只是紙上談兵。
我的開發機器是MBP是無法跑原生的Docker,好在Docker也有幫Mac 使用這準備了boot2docker 的套件,其實說穿了就是一個virtualbox 的vm (
1. 可以透過boot2docker的指令來操控vm(有點vagrant的感覺)
2. 然後在mac的環境就可以直接對boot2docker 這台vm裡面的docker 下命令
不過如果你要在MacOS 環境開發程式直接連到docker 裡面的app (比如說Datavase )那就沒那麼方便了,因為網路其實是不通的(或是要轉好幾層)
這時候Kitematic 就可以上場救援了,Kitematic 也是架構在boot2docker 上的mac solution,希望透過圖形化的界面幫助使用者好管理docker app (但是硬漢都應該要用command line啊~XD)
不過老實說Kitematic 要怎麼用,或是好處在哪裡我還不清楚,不過我卻受惠于他內建的一個docker app 叫做kite-dns,這個神奇的玩意會自動幫我mapping boot2docker vm內的ip 到vm的外部ip。
也就是說如果我要access DB立論上是從mac ssh 192.168.59.103 到boot2docker vm,然後再透過172.17.0.3 才能連到DB。
但是kite-dns 透過某種機制,直接讓我的mac可以透過172.17.0.3 這組ip來access db! 這樣開發起來就方便多了!
---
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9775e6b4a928 kite-dns:latest "sh /app/start" About a minute ago Up About a minute 172.17.42.1:53->53/udp kite-dns
----
不知道可不可以不安裝kitematic的狀況下,獨立下載安裝kite-dns 或安裝到其他的vm呢?
詳細原理跟關於docker 內的網路運作機制可能還是得再研究一下....
[2015.02.04] 話說boot2docker 原來已經默默的改善了不少,現在內建就有dns mapping的功能
沒有留言:
張貼留言