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應用程序。
[圖片上傳失敗...(image-a88773-1535856548141)]雙擊Docker.app啟動Docker
[圖片上傳失敗...(image-4d029f-1535856548141)]藍鯨的頭狀態條表Docker正在運行,并且是可以從終端進入的。如果你已經安裝了這個app,你也會獲得暗示下一步成功的消息和鏈接到這個文檔,點擊藍鯨圖標在狀態條上有下圖這樣一個顯示和彈出
[圖片上傳失敗...(image-1bf361-1535856548141)]點擊鯨獲取參數和其他選項
[圖片上傳失敗...(image-b907e4-1535856548141)]選擇關于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
[圖片上傳失敗...(image-b78815-1535856548143)]
如果本地沒有找到這個鏡像,那么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
[圖片上傳失敗...(image-7c0863-1535856548143)]
自動啟動,更新,備份,使用數據
- 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
[圖片上傳失敗...(image-352034-1535856548143)]
你能夠用它來決定在你的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
[圖片上傳失敗...(image-bf7d38-1535856548142)]
[圖片上傳失敗...(image-dc666c-1535856548142)]
HTTP 代理設置
在Mac平臺上的Docker將探測HTTP/HTTPS代理設置和自動地將這些設置傳播到Docker和傳播到你的容器。例如,如果你把的代理設置設置成http://proxy.example.com
,當拉容器的時候,Docker將使用這個代理設置。
[圖片上傳失敗...(image-c79661-1535856548142)]
Docker Daemon
你可以通過在Docker守護進程配置項中設置怎么樣運行容器。你可以在守護進程中配置一些交互式設置或者轉換到Advanced直接編輯JSON。基本對話框提供的設置也可以直接在JSON中配置,此版本只是介紹一些常見的設置,使其更容易配置它們。
[圖片上傳失敗...(image-7b9724-1535856548142)]
- 實驗模式
- 自定義注冊
- 編輯守護配置文件
下面將會詳細介紹著三種模式
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鍵,當彈出對話框來詢問時選擇丟棄或者不應用。
[圖片上傳失敗...(image-d6022a-1535856548142)]
卸載或者重置
選擇 小藍鯨 ->從菜單條目上選擇Preferences,然后在相關對話框上點擊Uninstall / Reset。
[圖片上傳失敗...(image-9bf6ff-1535856548142)]
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鏡像發的最佳位置。