Docker是一個跨平臺的輕量級虛擬機,可移植性非常高,一次部署,終生可用喝检。Docker可以在Linux,Windows,MacOS等平臺上安裝使用。我們都知道Linux有很多不同 的版本懈词,例如Ubuntu停蕉,AIX迟郎,CentOS锨并,Debian桦锄,F(xiàn)edora,Oracle Linux抠忘,Red Hat Enterprise Linux撩炊,openSUSE and SUSE Linux Enterprise等。盡管Linux的版本很多崎脉,但是我們的Docker都可以在他們在面運行拧咳。你也可以使用Docker云來自動準(zhǔn)備和管理你的云實例。
1.在Mac系統(tǒng)上安轉(zhuǎn)Docker
Docker的Mac系統(tǒng)上的安裝包中包含了你在Mac上運行Docker的所有依賴的東西囚灼,下面這個主題是描述在Mac系統(tǒng)上預(yù)安裝需要考慮的一些問題和怎樣在Mac系統(tǒng)上安裝 Docker骆膝。
你的Mac本上是否已經(jīng)安裝了Docker,如果已經(jīng)安裝了Docker,你可以直接去啟動Docker灶体,如果你已經(jīng)掌握了在Mac上使用Docker阅签,那么你可以直接跳過整個Mac上的Docker的安裝和運行部分。
1.2.在Mac下載Docker
在Mac系統(tǒng)上下載Docker有兩種方式蝎抽,一種是下載stable Docker政钟,另一種是下載Beta版本的Docker
1.3.stable Docker下載
穩(wěn)定版的Docker是完全測試過的,并且在Docker引擎中帶有實驗特征的最新版本的Docker引擎,這種引擎在默認(rèn)情況下啟用并其在Docker Daemon設(shè)置中優(yōu)先配置為實驗?zāi)J窖弧H绻阆胍蕾嚻脚_來工作那么這種安裝方式是最好的選擇精算。這些版本遵循比beta版更長的發(fā)布時間版本計劃,與Docker Engine版本和修補程序同步碎连。在穩(wěn)定通道上灰羽,您可以選擇是否發(fā)送使用統(tǒng)計信息和其他數(shù)據(jù)。
下載地址:https://download.docker.com/mac/stable/Docker.dmg
Docker實驗的特征
下面將例舉實驗版的Docker的特征破花,實驗特征不是為了成型的產(chǎn)品準(zhǔn)備的谦趣,他們是用來測試和評估你的sandbod
環(huán)境的疲吸,下面信息描述了每一個特征和在github上拉取下來的與之相關(guān)的爭議座每。如果是必要的爭議信息會提供爭議相關(guān)的文檔。如果你是一個社區(qū)上的Docker的活躍使用用戶摘悴,希望你可以在這些特征上提供一些你希望的建議峭梳。
使用實驗版的Docker
實驗特征現(xiàn)在包含標(biāo)準(zhǔn)的1.13.0版本的Docker二進(jìn)制文件, 為了使實驗特征能使用蹂喻,你需要--experimental
來啟動Docker守護(hù)進(jìn)程葱椭,你可以通過使用/etc/docker/daemon.json
使守護(hù)標(biāo)志能用。例如:
{
"experimental": true
}
然后確認(rèn)實驗標(biāo)志是可以使用的
$ docker version -f '{{.Server.Experimental}}'
true
目前的實驗特征
額外的圖形驅(qū)動插件
Ipvlan網(wǎng)絡(luò)驅(qū)動器
Docker堆棧和分布式應(yīng)用程序軟件集
檢查點和恢復(fù)
怎么樣評判這些特征
此處的內(nèi)容沒什么用口四,主要是關(guān)于這些特征的更改建議孵运。
1.4.Beta Docker下載
這個安裝包提供了最新適應(yīng)Mac系統(tǒng)的Docker的Beta發(fā)布版本,在Docker引擎中提供了帶有實驗特征的切掉邊緣效應(yīng)蔓彩,這種引擎在默認(rèn)情況下啟用并其在Docker Daemon設(shè)置中優(yōu)先配置為實驗?zāi)J街伪俊H绻阆朐陂_發(fā)模式下實驗特征這是最好的使用通道,并且能經(jīng)受得住一些非穩(wěn)定性和bugs赤嚼。這個通道是Beta程序的延續(xù)旷赖,為了應(yīng)用程序的進(jìn)化你可以提供一些相關(guān)的反饋。Beta通道的版本發(fā)布比Stable通道更頻繁更卒,經(jīng)常一個發(fā)布一次或者多次等孵。我們通過板來收集所有的用戶數(shù)據(jù)。
下載地址:https://download.docker.com/mac/beta/Docker.dmg
重要提示
Mac需要在運行OS X El Capitan 10.11的2010年或更新的Mac上蹂空,或更高版本的macOS版本俯萌,英特爾支持MMU虛擬化。該應(yīng)用程序?qū)⒃?0.10.3 Yosemite上運行上枕,但支持有限咐熙。請看安裝前需要知道什么的完整的預(yù)備知識解釋。你可在beta和stable版本之間轉(zhuǎn)換姿骏,但是在同一時刻你必須只能安裝一個應(yīng)用程序糖声。在安裝另一個之前卸載這個只是如果你想保存以前的那個Docker你需要保存鏡像和導(dǎo)出容器。想要知道更多,請看https://docs.docker.com/docker-for-mac/faqs/#stable-and-beta-channels蘸泻。
在Mac系統(tǒng)上安裝Docker你需要知道些什么
首先你需要了解Docker ToolBox和Docker Machine:如果你已經(jīng)在你的機器上運行Docker琉苇,首要條件就是閱讀Docker for Mac和Docker ToolBox來理解已經(jīng)存在的設(shè)置對這個安裝的影響。怎樣在Mac系統(tǒng)下配置你的環(huán)境和怎樣使兩個產(chǎn)品能夠共同協(xié)作悦施。
Docker機器的相關(guān)聯(lián)系:在Mac上安裝Docker不會影響你創(chuàng)建的機器并扇。你可以選擇從本地默認(rèn)機器獲取選擇復(fù)制鏡像和容器到新的Mac上的Docker HyperKit”虛擬機。當(dāng)你在Mac上運行Docker抡诞,不用需要Docker虛擬機運行在本地(它可以運行在任何地方)穷蛹。Mac系統(tǒng)上的Docker,你有一個新的昼汗、本地的虛擬系統(tǒng)來取代虛擬盒子系統(tǒng)運行(這個東西叫做HyperKit)肴熏。想要學(xué)更多的話,請看下面的Docker for Mac和Docker ToolBox顷窒。
系統(tǒng)需求:只有滿足所有這些要求時蛙吏,Mac版Docker才會啟動
- Mac必須是因特爾硬件支持內(nèi)存管理單元(MMU)虛擬化的2010版或者更新的版本。例如:擴展頁表(EPT)和非限制模式鞋吉。
- 支持OS X El Capitan 10.11和更高版本的MacOS鸦做。 至少,Docker for Mac需要macOS Yosemite 10.10.3或更新版本谓着,注意使用10.10.x是有一定的風(fēng)險的泼诱。
- 從Docker for Mac穩(wěn)定版1.13(即將推出)和并發(fā)Beta版本開始,我們將不再解決OS X Yosemite 10.10特有的問題赊锚。 在將來的版本中治筒,由于OS X版本的棄用狀態(tài),Docker for Mac可能會停止在OS X Yosemite 10.10上運行改抡。建議升級到最新版本的macOS矢炼。
- 至少4GB的內(nèi)存
- 不能安裝版本4.3.30之前的VirtualBox(它與Mac的Docker不兼容)
注意.如果你的系統(tǒng)是不滿足這些要求的,你能安裝Docker Toolbox,使用甲骨文的虛擬盒子來代替HyperKit
安裝包括:Docker Engin, Docker CLi,Docker Compose和Docker Machine
1.5.Mac上安裝和運行Docker
雙擊
Docker.dmg
打開安裝包阿纤,然后拖拽Moby藍(lán)鯨到應(yīng)用文件夾句灌。在安裝過程中你將會被Docker.app請求輸入你電腦的系統(tǒng)密碼。給予進(jìn)入特權(quán)的需要安裝網(wǎng)絡(luò)組件和鏈接到Docker應(yīng)用程序欠拾。
[圖片上傳失敗...(image-a88773-1535856548141)]雙擊Docker.app啟動Docker
[圖片上傳失敗...(image-4d029f-1535856548141)]藍(lán)鯨的頭狀態(tài)條表Docker正在運行胰锌,并且是可以從終端進(jìn)入的。如果你已經(jīng)安裝了這個app藐窄,你也會獲得暗示下一步成功的消息和鏈接到這個文檔资昧,點擊藍(lán)鯨圖標(biāo)在狀態(tài)條上有下圖這樣一個顯示和彈出
[圖片上傳失敗...(image-1bf361-1535856548141)]點擊鯨獲取參數(shù)和其他選項
[圖片上傳失敗...(image-b907e4-1535856548141)]選擇關(guān)于Docker以驗證您是否具有最新版本
恭喜你,你已經(jīng)完成Mac下面的Docker安裝荆忍。
2.Mac平臺下Docker相關(guān)的東西
2.1.開始使用Docker for Mac
Docker是一個創(chuàng)建集裝箱式的全開發(fā)平臺應(yīng)用程序格带,在Mac平臺上運行Docker最好的方法就是在Mac平臺上啟動Docker
注意:如果你還沒有在Mac平臺上安裝Docker撤缴,請你現(xiàn)在Mac平臺上安全穩(wěn)定版的Docker或者Beta版本的Docker,在安裝之前你必須了解Docker
對Mac系統(tǒng)的安裝需求叽唱,你可以先看上面提道的安裝前你需要知道的東西屈呕。
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
注意.這上面只是一個例子,你的輸出結(jié)果根據(jù)你的版本不同而不同
2.2. 瀏覽應(yīng)用程序和運行一個案列
- 打開命令行終端镶摘,使用Docker命令檢查Docker是不像所期望的那樣正常工作嗽桩。可以使用這些命令docker version, docker ps和docker run hello-world來確認(rèn)Docker是否正常運行凄敢,如果這些命令能正常執(zhí)行,那么就說Docker在運行著碌冶。
- 使用更刺激的方法,運行一個Docker化的web服務(wù)器贡未,當(dāng)然這樣做的前提條件是你本地必須有你要運行的鏡像种樱。
docker run -d -p 80:80 --name webserver nginx
[圖片上傳失敗...(image-b78815-1535856548143)]
如果本地沒有找到這個鏡像,那么Docker將會去Docker Hub中拉取鏡像俊卤。
注意:早期的Beta發(fā)布版本使用docker做為主機名來創(chuàng)建URL,現(xiàn)在端口號被暴露在虛擬機的私有IP地址并且在沒有主機名字設(shè)置的情況下傳遞給主機害幅,也可以看Beta9的發(fā)布注意點消恍。
在你的web服務(wù)器正在運行的時候執(zhí)行
docker ps
查看web服務(wù)器容器的詳細(xì)信息。停止或者移除容器和鏡像
nginx web服務(wù)器在你停止或者移除容器之前會持續(xù)運行著以现,如果你想停止web服務(wù)器:docker stop webserver
,啟動服務(wù)器用命令docker start webserver
狠怨。查看一個容器是否停止了用命令docker ps
;docker ps -a
查看終止?fàn)顟B(tài)的容器。使用docker rm -f webserver
命令來移除正在運行的容器邑遏。這個命令會移除容器佣赖,但不能移除nginx
鏡像。你可以使用docker list命令來列出本地鏡像记盒。你可能會保存一些鏡像在本地以致于你不用再次去Docker Hub中拉鏡像憎蛤。想要移除一個長期不需要的鏡像,使用docker rmi后加ID號和鏡像名字纪吮。例如俩檬,docker rmi ngix。命令總結(jié):
docker ps
查看正在運行的容器
docker stop
停止正在運行的容器
docker start
啟動容器
docker ps -a
查看終止?fàn)顟B(tài)的容器
docker rm -f webserver
命令來移除正在運行的容器
docker list
列出本地鏡像
docker rmi
刪除的鏡像
2.3.Preferences
選擇碾盟,藍(lán)鯨圖標(biāo)–>菜單條中的Preferences棚辽。你可以設(shè)置下面的運行時間選項
General
[圖片上傳失敗...(image-7c0863-1535856548143)]
自動啟動,更新冰肴,備份屈藐,使用數(shù)據(jù)
- Mac平臺下的Docker設(shè)置當(dāng)你登錄的自動啟動Docker榔组。如果你想在開啟你的對話時不啟動Docker就不需要檢查這個選項
- Mac平臺下的Docker在更新可獲得時,設(shè)置自動檢查更新和告知用戶联逻,如果發(fā)現(xiàn)一個新版本瓷患,點擊OK接受安裝它(或者取消更新保存當(dāng)前版本)。如果你不能夠檢查更新遣妥,你仍然可以手動地更新擅编,藍(lán)鯨–>Check for Update
- 選中從Time Machine備份中排除虛擬機以防止Time Machine備份Mac平臺下的虛擬機
- Send usage statistics你可以在Mac平臺下設(shè)置Docker自動發(fā)送診斷、死機報告和用戶數(shù)據(jù)箫踩。這些信息能幫助Docker提高應(yīng)用程序和獲取更多關(guān)于故障問題排除的內(nèi)容爱态。不檢查這個opt輸出和防止自動發(fā)送數(shù)據(jù)。在這些情況下Docker可能提供更多信息境钟,甚至自動發(fā)送可用锦担。
File sharing
[圖片上傳失敗...(image-352034-1535856548143)]
你能夠用它來決定在你的Mac平臺上的目錄是否是容器共享
- Add a Directory-點擊
+
和操縱你想要添加的目錄 - 點擊Apply & Restart使目錄使用Docker的捆綁峰[-v]特征對當(dāng)前容器有效。所有這些局限性在目錄上是能夠共享的它們不能成為已經(jīng)共享的目錄的子目錄
Advanced
CPUs
默認(rèn)情況下慨削,Mac平臺上的Docker設(shè)置使用2個處理器洞渔,你可以通過設(shè)置更高的數(shù)字來增加處理力度,或者在Mac上降低它以使得使用更少的計算機資源
Memory
默認(rèn)情況下缚态,在Mac平臺下的Docker使用2GB的運行內(nèi)存磁椒,這2GB的內(nèi)存從你的計算機的總可用內(nèi)存中分配。你可以通過設(shè)置更高的內(nèi)存來提高應(yīng)用程序的性能例如設(shè)置為3玫芦,如果你想要使用更少的內(nèi)存那么你就把它設(shè)置到1浆熔。
Storage location
你可設(shè)置Linux容量存在位置,例如:容器和鏡像被存儲在那里桥帆。Disk images localtion(Beta)啟動Beta39医增,存儲的鏡像關(guān)聯(lián)到硬盤鏡像,并且被應(yīng)用程序跟蹤老虫。如果你嘗試移動鏡像到已經(jīng)存在一個鏡像的本地叶骨,你將獲得一個溫馨提示,你是否想替換已經(jīng)存在的鏡像祈匙。對于Beta提前發(fā)布的版本忽刽,在這個對話中的標(biāo)志已經(jīng)更新如下
- Storage location被重命名為Disk image location
- Change location按鈕被重命名為move disk image
[圖片上傳失敗...(image-bf7d38-1535856548142)]
[圖片上傳失敗...(image-dc666c-1535856548142)]
HTTP 代理設(shè)置
在Mac平臺上的Docker將探測HTTP/HTTPS代理設(shè)置和自動地將這些設(shè)置傳播到Docker和傳播到你的容器。例如菊卷,如果你把的代理設(shè)置設(shè)置成http://proxy.example.com
,當(dāng)拉容器的時候缔恳,Docker將使用這個代理設(shè)置。
[圖片上傳失敗...(image-c79661-1535856548142)]
Docker Daemon
你可以通過在Docker守護(hù)進(jìn)程配置項中設(shè)置怎么樣運行容器洁闰。你可以在守護(hù)進(jìn)程中配置一些交互式設(shè)置或者轉(zhuǎn)換到Advanced直接編輯JSON歉甚。基本對話框提供的設(shè)置也可以直接在JSON中配置扑眉,此版本只是介紹一些常見的設(shè)置纸泄,使其更容易配置它們赖钞。
[圖片上傳失敗...(image-7b9724-1535856548142)]
- 實驗?zāi)J?/li>
- 自定義注冊
- 編輯守護(hù)配置文件
下面將會詳細(xì)介紹著三種模式
Experimental mode
在Mac平臺上啟動的Stable1.13.0和Beta31版本的Docker,這兩種發(fā)布版本在Docker引擎上都有各自的實驗特征聘裁。這部分內(nèi)容在github上的Docker實驗特征的的ReadMe中有介紹雪营。實驗特征是不適合于生產(chǎn)環(huán)境或者工作負(fù)載的。它們意味著對新想法的沙盒實驗衡便,許多實驗特征可能會合并到即將發(fā)布的stable版本中献起,但是其他的從隨后的Beta版本中可能的修飾和提高絕不會發(fā)布在Stable版本中。在Beta和Stable發(fā)布的版本中镣陕,你可打開或者關(guān)閉實驗?zāi)J角床汀2还苣愦蜷_還是關(guān)閉它,Mac平臺上的Docker會使用目前Docker引擎中常用的使用模式呆抑。不管你是不是以實驗?zāi)J竭\行岂嗓,你都可以通過docker version
這個命令來檢查Docker的版本。實驗?zāi)J降臄?shù)據(jù)將在Server
下列出鹊碍。如果Experimental
是true
厌殉,那么Docker將以實驗?zāi)J竭\行,結(jié)果顯示在下面侈咕。(如果false公罕,Experiment模式是關(guān)閉)。
$ 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來設(shè)置你的非安全注冊熏兄,對你本機上的鏡像添加URLs來實現(xiàn)非安全注冊或者注冊鏡像。(也可以看FAQs树姨,我怎么添加自定義的CA證書[此處本文后面會寫])
編輯daemon配置文件
在Daemon–>Advanced dialog,你可以通過json文件直接配置Daemon桥状,完全地決定你的容器怎么運行帽揪。想看Docker Daemon的完整條目,請看Daemon相關(guān)的Docker引擎命令行關(guān)聯(lián)辅斟。在編輯完Daemon配置后转晰,點擊Apply & Restart來保存它并且重新啟動Docker∈快或者查邢,取消改變,點擊tab鍵酵幕,當(dāng)彈出對話框來詢問時選擇丟棄或者不應(yīng)用扰藕。
[圖片上傳失敗...(image-d6022a-1535856548142)]
卸載或者重置
選擇 小藍(lán)鯨 ->從菜單條目上選擇Preferences,然后在相關(guān)對話框上點擊Uninstall / Reset芳撒。
[圖片上傳失敗...(image-9bf6ff-1535856548142)]
Uninstall–選擇卸載選項是從你的Mac系統(tǒng)中移出DockerReset to factory defaults–選擇這個選項重置Mac平臺上的Docker使其回到初始狀態(tài)邓深,就像剛安裝的時候一樣未桥。你可以通過<DockerforMacPath> --uninstall
這個命令行來從Mac平臺上卸載你的Docker。如果Docker默認(rèn)安裝在本地芥备,下面的命令將提供清除卸載
$ /Applications/Docker.app/Contents/MacOS/Docker --uninstall
Docker is running, exiting...
Docker uninstalled successfully. You can move the Docker application to the trash.
你可能想通過使用命令行來卸載Docker冬耿,例如,你發(fā)現(xiàn)一個沒有功能的APP萌壳,你從菜單條目里面無法刪除它亦镶,那么你就的使用命令行。
安裝bash completion
如果你使用bash completion袱瓮,例如:自制軟件在Mac上的bash-completion的bash completion腳本命令能在Docker.app的Contents/Resources/etc/
目錄里面找到
docker
docker-machine
docker-compose
為了激活bash completion,這些文件需要復(fù)制或者軟連接到你的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懂讯,進(jìn)入Docker應(yīng)用下載網(wǎng)站荷憋。Docker Store是下一代Docker Hub的一個組件,是找到兼容褐望,可信的商業(yè)和免費軟件和作為Docker鏡像發(fā)的最佳位置勒庄。