Mac OS下的boot2docker
最后更新于:2022-04-01 23:04:09
# Mac OS下的boot2docker
由於Mac OS是一個類UNIX的封閉系統,因此在操作上雖然很像Linux,但核心是使用蘋果自己的系統。要使用Docker也必須使用boot2docker的Mac版,操作較Windows版多幾個步驟,我們就來看看。
### 安裝boot2docker
Mac OS下的boot2docker安裝和Windows差不多,我們就來看看。
1. 確定Mac OS的版本在10.6以上。
1. 到[https://github.com/boot2docker/osx-installer/releases/tag/v1.5.0下載Boot2Docker-1.5.0.pkg。](https://github.com/boot2docker/osx-installer/releases/tag/v1.5.0下載Boot2Docker-1.5.0.pkg。)
1. 下載後直接執行該檔案,此時會將Boot2Docker放到Mac OS的Applications的資料夾下,而將docker及boot2docker放到`/usr/local/bin`的資料夾下(和Linux一樣)。
1. 照著一般Mac OS的程式安裝即可(其實就是安裝VirtualBox,一直Next即可)。
1. 安裝完畢後,會在「應用程式」的資料夾出現boot2docker的圖示。
1. 直接執行,第一次會出現如圖的視窗,要等一下。
1. 跑完之後,輸入`docker run -d --name web -p 8080:80 joshhu/webdemo`,出現下圖的畫面時表示安裝成功。
1. 但這個服務成功了嗎?照道理來說,應該是這台Mac的IP位址的8080埠對應到Docker中Container的80埠,我們試著輸入[http://localhost:8080/,應該可以看到服務,但是並沒有。](http://localhost:8080/,應該可以看到服務,但是並沒有。)
### boot2docker和標準docker的差別
在一般的Linux下使用Docker時,docker daemon是運作在該Linux的主機上,但是在boot2docker中,docker daemon是運作在Windows/Mac OS主機下的一個VM中,因此無法直接使用本機的資源(如IP位址、磁碟對應等)。
_這是標準Linux_

_這是boot2docker_

舉例來說,使用Linux主機上的Docker時,你可以設定該Linux主機的IP位置和Docker Container的對應,但在boot2docker中,Windows/Mac OS主機的IP位置是完全無法對應到Docker的Container中,只能讓VirtualBox VM的IP位置和Docker的Container對應。
### 使用Mac OS在VirtualBox網段的IP才行
1. 在正常的Linux Docker中,可以直接存取主機的IP以及對應的埠,就可以看到Apache啟動。
1. 但在Mac OS的boot2docker之下無法看到網頁,這是因為boot2docker是在一個VirtualBox的VM中執行的,只能先取得Mac的VirtualBox NAT IP。輸入`boot2docker ip`獲得Container執行VM的主機IP。
1. 此時再在Mac OS的瀏覽器中輸入剛才獲得的VM IP即對應埠,才能看到測試網站的產生。
Boot2docker只是把一個VirtualBox的VM隱藏在記憶體中,因此並無法完全發揮正常Docker的功能,本書不推薦。另外有關Docker的IP位址對應在後面章節有詳細的說明。
';