Mac平臺上Docker安裝與使用
Docker是一個跨平臺的輕量級虛擬機器,可移植性非常高,一次部署,終生可用。Docker可以在Linux,Windows,MacOS等平臺上安裝使用。我們都知道Linux有很多不同 的版本,例如Ubuntu,AIX,CentOS,Debian,Fedora,Oracle Linux,Red Hat Enterprise Linux,openSUSE and SUSE Linux Enterprise等。儘管Linux的版本很多,但是我們的Docker都可以在他們在面執行。你也可以使用Docker雲來自動準備和管理你的雲實例。
1.在Mac系統上安轉Docker
Docker的Mac系統上的安裝包中包含了你在Mac上執行Docker的所有依賴的東西,下面這個主題是描述在Mac系統上預安裝需要考慮的一些問題和怎樣在Mac系統上安裝 Docker。
你的Mac本上是否已經安裝了Docker,如果已經安裝了Docker,你可以直接去啟動Docker,如果你已經掌握了在Mac上使用Docker,那麼你可以直接跳過整個Mac上的Docker的安裝和執行部分。
1.2.在Mac下載Docker
在Mac系統上下載Docker有兩種方式,一種是下載stable Docker,另一種是下載Beta版本的Docker
1.3.stable Docker下載
穩定版的Docker是完全測試過的,並且在Docker引擎中帶有實驗特徵的最新版本的Docker引擎,這種引擎在預設情況下啟用並其在Docker Daemon設定中優先配置為實驗模式。如果你想依賴平臺來工作那麼這種安裝方式是最好的選擇。這些版本遵循比beta版更長的釋出時間版本計劃,與Docker Engine版本和修補程式同步。在穩定通道上,您可以選擇是否傳送使用統計資訊和其他資料。
下載地址:https://download.docker.com/mac/stable/Docker.dmg
Docker實驗的特徵
下面將例舉實驗版的Docker的特徵,實驗特徵不是為了成型的產品準備的,他們是用來測試和評估你的sandbod
環境的,下面資訊描述了每一個特徵和在github上拉取下來的與之相關的爭議。如果是必要的爭議資訊會提供爭議相關的文件。如果你是一個社群上的Docker的活躍使用使用者,希望你可以在這些特徵上提供一些你希望的建議。
使用實驗版的Docker
實驗特徵現在包含標準的1.13.0版本的Docker二進位制檔案, 為了使實驗特徵能使用,你需要--experimental
來啟動Docker守護程序,你可以通過使用/etc/docker/daemon.json
使守護標誌能用。例如:
{
"experimental": true
}
然後確認實驗標誌是可以使用的
$ docker version -f '{{.Server.Experimental}}'
true
目前的實驗特徵
額外的圖形驅動外掛
Ipvlan網路驅動器
Docker堆疊和分散式應用程式軟體集
檢查點和恢復
怎麼樣評判這些特徵
此處的內容沒什麼用,主要是關於這些特徵的更改建議。
1.4.Beta Docker下載
這個安裝包提供了最新適應Mac系統的Docker的Beta釋出版本,在Docker引擎中提供了帶有實驗特徵的切掉邊緣效應,這種引擎在預設情況下啟用並其在Docker Daemon設定中優先配置為實驗模式。如果你想在開發模式下實驗特徵這是最好的使用通道,並且能經受得住一些非穩定性和bugs。這個通道是Beta程式的延續,為了應用程式的進化你可以提供一些相關的反饋。Beta通道的版本釋出比Stable通道更頻繁,經常一個釋出一次或者多次。我們通過板來收集所有的使用者資料。
下載地址:https://download.docker.com/mac/beta/Docker.dmg
重要提示
Mac需要在執行OS X El Capitan 10.11的2010年或更新的Mac上,或更高版本的macOS版本,英特爾支援MMU虛擬化。該應用程式將在10.10.3 Yosemite上執行,但支援有限。請看安裝前需要知道什麼的完整的預備知識解釋。你可在beta和stable版本之間轉換,但是在同一時刻你必須只能安裝一個應用程式。在安裝另一個之前解除安裝這個只是如果你想儲存以前的那個Docker你需要儲存映象和匯出容器。想要知道更多,請看https://docs.docker.com/docker-for-mac/faqs/#stable-and-beta-channels。
在Mac系統上安裝Docker你需要知道些什麼
首先你需要了解Docker ToolBox和Docker Machine:如果你已經在你的機器上執行Docker,首要條件就是閱讀Docker for Mac和Docker ToolBox來理解已經存在的設定對這個安裝的影響。怎樣在Mac系統下配置你的環境和怎樣使兩個產品能夠共同協作。
Docker機器的相關聯絡:在Mac上安裝Docker不會影響你建立的機器。你可以選擇從本地預設機器獲取選擇複製映象和容器到新的Mac上的Docker HyperKit”虛擬機器。當你在Mac上執行Docker,不用需要Docker虛擬機器執行在本地(它可以執行在任何地方)。Mac系統上的Docker,你有一個新的、本地的虛擬系統來取代虛擬盒子系統執行(這個東西叫做HyperKit)。想要學更多的話,請看下面的Docker for Mac和Docker ToolBox。
系統需求:只有滿足所有這些要求時,Mac版Docker才會啟動
* Mac必須是因特爾硬體支援記憶體管理單元(MMU)虛擬化的2010版或者更新的版本。例如:擴充套件頁表(EPT)和非限制模式。
* 支援OS X El Capitan 10.11和更高版本的MacOS。 至少,Docker for Mac需要macOS Yosemite 10.10.3或更新版本,注意使用10.10.x是有一定的風險的。
* 從Docker for Mac穩定版1.13(即將推出)和併發Beta版本開始,我們將不再解決OS X Yosemite 10.10特有的問題。 在將來的版本中,由於OS X版本的棄用狀態,Docker for Mac可能會停止在OS X Yosemite 10.10上執行。建議升級到最新版本的macOS。
* 至少4GB的記憶體
* 不能安裝版本4.3.30之前的VirtualBox(它與Mac的Docker不相容)
注意.如果你的系統是不滿足這些要求的,你能安裝Docker Toolbox,使用甲骨文的虛擬盒子來代替HyperKit
安裝包括:Docker Engin, Docker CLi,Docker Compose和Docker Machine
1.5.Mac上安裝和執行Docker
雙擊
Docker.dmg
開啟安裝包,然後拖拽Moby藍鯨到應用資料夾。在安裝過程中你將會被Docker.app請求輸入你電腦的系統密碼。給予進入特權的需要安裝網路元件和連結到Docker應用程式。
雙擊Docker.app啟動Docker
藍鯨的頭狀態條表Docker正在執行,並且是可以從終端進入的。如果你已經安裝了這個app,你也會獲得暗示下一步成功的訊息和連結到這個文件,點選藍鯨圖示在狀態條上有下圖這樣一個顯示和彈出
點選鯨獲取引數和其他選項
選擇關於Docker以驗證您是否具有最新版本
恭喜你,你已經完成Mac下面的Docker安裝。
2.Mac平臺下Docker相關的東西
2.1.開始使用Docker for Mac
Docker是一個建立集裝箱式的全開發平臺應用程式,在Mac平臺上執行Docker最好的方法就是在Mac平臺上啟動Docker
_注意:如果你還沒有在Mac平臺上安裝Docker,請你現在Mac平臺上安全穩定版的Docker或者Beta版本的Docker,在安裝之前你必須瞭解Docker
對Mac系統的安裝需求,你可以先看上面提道的安裝前你需要知道的東西。_
2.2.檢查Docker Engine,Docker Compose和Docker Machine的版本
如果你的docker,docker-compose和docker-machine是能與Docker.app相容的最新版本,那麼你就可以執行下面這些命令
$ docker --version
Docker version 1.13.0, build 49bf474
$ docker-compose --version
docker-compose version 1.10.0, build 4bd6f1a
$ docker-machine --version
docker-machine version 0.9.0, build 15fd4c7
注意.這上面只是一個例子,你的輸出結果根據你的版本不同而不同
2.2. 瀏覽應用程式和執行一個案列
- 開啟命令列終端,使用Docker命令檢查Docker是不像所期望的那樣正常工作。可以使用這些命令docker version, docker ps和docker run hello-world來確認Docker是否正常執行,如果這些命令能正常執行,那麼就說Docker在執行著。
- 使用更刺激的方法,執行一個Docker化的web伺服器,當然這樣做的前提條件是你本地必須有你要執行的映象。
docker run -d -p 80:80 --name webserver nginx
如果本地沒有找到這個映象,那麼Docker將會去Docker Hub中拉取映象。
注意:早期的Beta釋出版本使用docker做為主機名來建立URL,現在埠號被暴露在虛擬機器的私有IP地址並且在沒有主機名字設定的情況下傳遞給主機,也可以看Beta9的釋出注意點。
- 在你的web伺服器正在執行的時候執行
docker ps
檢視web伺服器容器的詳細資訊。 停止或者移除容器和映象
nginx web伺服器在你停止或者移除容器之前會持續執行著,如果你想停止web伺服器:docker stop webserver
,啟動伺服器用命令docker start webserver
。檢視一個容器是否停止了用命令docker ps
;docker ps -a
檢視終止狀態的容器。使用docker rm -f webserver
命令來移除正在執行的容器。這個命令會移除容器,但不能移除nginx
映象。你可以使用docker list命令來列出本地映象。你可能會儲存一些映象在本地以致於你不用再次去Docker Hub中拉映象。想要移除一個長期不需要的映象,使用docker rmi後加ID號和映象名字。例如,docker rmi ngix。命令總結:
docker ps
檢視正在執行的容器
docker stop
停止正在執行的容器
docker start
啟動容器
docker ps -a
檢視終止狀態的容器
docker rm -f webserver
命令來移除正在執行的容器
docker list
列出本地映象
docker rmi
刪除的映象
2.3.Preferences
選擇,藍鯨圖示–>選單條中的Preferences。你可以設定下面的執行時間選項
General
自動啟動,更新,備份,使用資料
- Mac平臺下的Docker設定當你登入的自動啟動Docker。如果你想在開啟你的對話時不啟動Docker就不需要檢查這個選項
- Mac平臺下的Docker在更新可獲得時,設定自動檢查更新和告知使用者,如果發現一個新版本,點選OK接受安裝它(或者取消更新儲存當前版本)。如果你不能夠檢查更新,你仍然可以手動地更新,藍鯨–>Check for Update
- 選中從Time Machine備份中排除虛擬機器以防止Time Machine備份Mac平臺下的虛擬機器
- Send usage statistics你可以在Mac平臺下設定Docker自動傳送診斷、宕機報告和使用者資料。這些資訊能幫助Docker提高應用程式和獲取更多關於故障問題排除的內容。不檢查這個opt輸出和防止自動傳送資料。在這些情況下Docker可能提供更多資訊,甚至自動傳送可用。
File sharing
你能夠用它來決定在你的Mac平臺上的目錄是否是容器共享
* Add a Directory-點選+
和操縱你想要新增的目錄
* 點選Apply & Restart使目錄使用Docker的捆綁峰[-v]特徵對當前容器有效。所有這些侷限性在目錄上是能夠共享的它們不能成為已經共享的目錄的子目錄
Advanced
CPUs
預設情況下,Mac平臺上的Docker設定使用2個處理器,你可以通過設定更高的數字來增加處理力度,或者在Mac上降低它以使得使用更少的計算機資源
Memory
預設情況下,在Mac平臺下的Docker使用2GB的執行記憶體,這2GB的記憶體從你的計算機的總可用記憶體中分配。你可以通過設定更高的記憶體來提高應用程式的效能例如設定為3,如果你想要使用更少的記憶體那麼你就把它設定到1。
Storage location
你可設定Linux容量存在位置,例如:容器和映象被儲存在那裡。Disk images localtion(Beta)啟動Beta39,儲存的映象關聯到硬碟映象,並且被應用程式跟蹤。如果你嘗試移動映象到已經存在一個映象的本地,你將獲得一個溫馨提示,你是否想替換已經存在的映象。對於Beta提前釋出的版本,在這個對話中的標誌已經更新如下
- Storage location被重新命名為Disk image location
- Change location按鈕被重新命名為move disk image
HTTP 代理設定
在Mac平臺上的Docker將探測HTTP/HTTPS代理設定和自動地將這些設定傳播到Docker和傳播到你的容器。例如,如果你把的代理設定設定成http://proxy.example.com
,當拉容器的時候,Docker將使用這個代理設定。
Docker Daemon
你可以通過在Docker守護程序配置項中設定怎麼樣執行容器。你可以在守護程序中配置一些互動式設定或者轉換到Advanced直接編輯JSON。基本對話方塊提供的設定也可以直接在JSON中配置,此版本只是介紹一些常見的設定,使其更容易配置它們。
- 實驗模式
- 自定義註冊
- 編輯守護配置檔案
下面將會詳細介紹著三種模式
Experimental mode
在Mac平臺上啟動的Stable1.13.0和Beta31版本的Docker,這兩種釋出版本在Docker引擎上都有各自的實驗特徵。這部分內容在github上的Docker實驗特徵的的ReadMe中有介紹。實驗特徵是不適合於生產環境或者工作負載的。它們意味著對新想法的沙盒實驗,許多實驗特徵可能會合併到即將釋出的stable版本中,但是其他的從隨後的Beta版本中可能的修飾和提高絕不會發布在Stable版本中。在Beta和Stable釋出的版本中,你可開啟或者關閉實驗模式。不管你開啟還是關閉它,Mac平臺上的Docker會使用目前Docker引擎中常用的使用模式。不管你是不是以實驗模式執行,你都可以通過docker version
這個命令來檢查Docker的版本。實驗模式的資料將在Server
下列出。如果Experimental
是true
,那麼Docker將以實驗模式執行,結果顯示在下面。(如果false,Experiment模式是關閉)。
$ docker version
Client:
Version: 1.13.0-rc3
API version: 1.25
Go version: go1.7.3
Git commit: 4d92237
Built: Tue Dec 6 01:15:44 2016
OS/Arch: darwin/amd64
Server:
Version: 1.13.0-rc3
API version: 1.25 (minimum version 1.12)
Go version: go1.7.3
Git commit: 4d92237
Built: Tue Dec 6 01:15:44 2016
OS/Arch: linux/amd64
Experimental: true
Custom registries
一種可選的方案使用Docker Hub或Docker Trusted Registry來儲存你的公有或者私有映象,你能使用Docker來設定你的非安全註冊,對你本機上的映象新增URLs來實現非安全註冊或者註冊映象。(也可以看FAQs,我怎麼新增自定義的CA證書[此處本文後面會寫])
編輯daemon配置檔案
在Daemon–>Advanced dialog,你可以通過json檔案直接配置Daemon,完全地決定你的容器怎麼執行。想看Docker Daemon的完整條目,請看Daemon相關的Docker引擎命令列關聯。在編輯完Daemon配置後,點選Apply & Restart來儲存它並且重新啟動Docker。或者,取消改變,點選tab鍵,當彈出對話方塊來詢問時選擇丟棄或者不應用。
解除安裝或者重置
選擇 小藍鯨 ->從選單條目上選擇Preferences,然後在相關對話方塊上點選Uninstall / Reset。
Uninstall–選擇解除安裝選項是從你的Mac系統中移出DockerReset to factory defaults–選擇這個選項重置Mac平臺上的Docker使其回到初始狀態,就像剛安裝的時候一樣。你可以通過<DockerforMacPath> --uninstall
這個命令列來從Mac平臺上解除安裝你的Docker。如果Docker預設安裝在本地,下面的命令將提供清除解除安裝
$ /Applications/Docker.app/Contents/MacOS/Docker --uninstall
Docker is running, exiting...
Docker uninstalled successfully. You can move the Docker application to the trash.
你可能想通過使用命令列來解除安裝Docker,例如,你發現一個沒有功能的APP,你從選單條目裡面無法刪除它,那麼你就的使用命令列。
安裝bash completion
如果你使用bash completion,例如:自制軟體在Mac上的bash-completion的bash completion指令碼命令能在Docker.app的Contents/Resources/etc/
目錄裡面找到
docker
docker-machine
docker-compose
為了啟用bash completion,這些檔案需要複製或者軟連線到你的bash_completion.d/目錄下。例如,如果你使用自制軟體
ln -s /Applications/Docker.app/Contents/Resources/etc/docker.bash-completion /usr/local/etc/bash_completion.d/docker
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.bash-completion /usr/local/etc/bash_completion.d/docker-machine
ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.bash-completion /usr/local/etc/bash_completion.d/docker-compos
Docker Store
從Mac平臺下Docker選單中選擇Docker Store,進入Docker應用下載網站。Docker Store是下一代Docker Hub的一個元件,是找到相容,可信的商業和免費軟體和作為Docker映象發的最佳位置。