2014年9月14日 星期日

MaxOS 上Docker 管理工具 boo2docker and Kitematic



最近要為新專案建立開發與測試環境,就想說那就趁機來玩一玩Docker 吧!不然都只是紙上談兵。

我的開發機器是MBP是無法跑原生的Docker,好在Docker也有幫Mac 使用這準備了boot2docker 的套件,其實說穿了就是一個virtualbox 的vm (跑的是busybox 所以也是個非常lightweigth 的vm),然後在vm 裡面跑docker,那boot2docker 有提供什麼好處?



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的功能

張貼留言