最完整的Docker聖經 - Docker原理圖解及全環境安裝

Mac OS下的boot2docker

由於Mac OS是一個類UNIX的封閉系統,因此在操作上雖然很像Linux,但核心是使用蘋果自己的系統。要使用Docker也必須使用boot2docker的Mac版,操作較Windows版多幾個步驟,我們就來看看。

安裝boot2docker

Mac OS下的boot2docker安裝和Windows差不多,我們就來看看。

  1. 確定Mac OS的版本在10.6以上。
  2. https://github.com/boot2docker/osx-installer/releases/tag/v1.5.0下載Boot2Docker-1.5.0.pkg。
  3. 下載後直接執行該檔案,此時會將Boot2Docker放到Mac OS的Applications的資料夾下,而將docker及boot2docker放到/usr/local/bin的資料夾下(和Linux一樣)。
  4. 照著一般Mac OS的程式安裝即可(其實就是安裝VirtualBox,一直Next即可)。
  5. 安裝完畢後,會在「應用程式」的資料夾出現boot2docker的圖示。
  6. 直接執行,第一次會出現如圖的視窗,要等一下。
  7. 跑完之後,輸入docker run -d --name web -p 8080:80 joshhu/webdemo,出現下圖的畫面時表示安裝成功。
  8. 但這個服務成功了嗎?照道理來說,應該是這台Mac的IP位址的8080埠對應到Docker中Container的80埠,我們試著輸入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啟動。
  2. 但在Mac OS的boot2docker之下無法看到網頁,這是因為boot2docker是在一個VirtualBox的VM中執行的,只能先取得Mac的VirtualBox NAT IP。輸入boot2docker ip獲得Container執行VM的主機IP。
  3. 此時再在Mac OS的瀏覽器中輸入剛才獲得的VM IP即對應埠,才能看到測試網站的產生。

Boot2docker只是把一個VirtualBox的VM隱藏在記憶體中,因此並無法完全發揮正常Docker的功能,本書不推薦。另外有關Docker的IP位址對應在後面章節有詳細的說明。