本文介紹win10專業(yè)版以下的windows版本(包括win10家庭版,win7,win8等)環(huán)境下的docker安裝.
注:兩者的區(qū)別在于系統(tǒng)是否有hyper-v,關(guān)于hyper-v和hyper-v的開(kāi)啟請(qǐng)自行百度.
關(guān)于本文安裝docker的說(shuō)明,docker無(wú)法在windows系統(tǒng)上運(yùn)行,所以我們需要安裝一個(gè)docker虛擬機(jī)(docker-machine)來(lái)運(yùn)行docker服務(wù).下文即是對(duì)docker 虛擬機(jī)工具的安裝和最終創(chuàng)建一個(gè)docker虛擬機(jī).
1.docker概述
幾個(gè)基本概念,網(wǎng)上貼的.
Docker Client : Docker提供給用戶的客戶端。Docker Client提供給用戶一個(gè)終端,用戶輸入Docker提供的命令來(lái)管理本地或者遠(yuǎn)程的服務(wù)器。
Docker Daemon : Docker服務(wù)的守護(hù)進(jìn)程。每臺(tái)服務(wù)器(物理機(jī)或虛機(jī))上只要安裝了Docker的環(huán)境,基本上就跑了一個(gè)后臺(tái)程序Docker Daemon,Docker Daemon會(huì)接收Docker Client發(fā)過(guò)來(lái)的指令,并對(duì)服務(wù)器的進(jìn)行具體操作。
Docker Images : 俗稱Docker的鏡像,這個(gè)可難懂了。你暫時(shí)可以認(rèn)為這個(gè)就像我們要給電腦裝系統(tǒng)用的系統(tǒng)CD盤,里面有操作系統(tǒng)的程序,并且還有一些CD盤在系統(tǒng)的基礎(chǔ)上安裝了必要的軟件,做成的一張“只讀” 的CD。
Docker Registry : 這個(gè)可認(rèn)為是Docker Images的倉(cāng)庫(kù),就像git的倉(cāng)庫(kù)一樣,用來(lái)管理Docker鏡像的,提供了Docker鏡像的上傳、下載和瀏覽等功能,并且提供安全的賬號(hào)管理可以管理只有自己可見(jiàn)的私人image。就像git的倉(cāng)庫(kù)一樣,docker也提供了官方的Registry,叫做Dock Hub(http://hub.Docker.com)
Docker Container : 俗稱Docker的容器,這個(gè)是最關(guān)鍵的東西了。Docker Container是真正跑項(xiàng)目程序、消耗機(jī)器資源、提供服務(wù)的地方,Docker Container通過(guò)Docker Images啟動(dòng),在Docker Images的基礎(chǔ)上運(yùn)行你需要的代碼。
你可以認(rèn)為Docker Container提供了系統(tǒng)硬件環(huán)境,然后使用了Docker Images這些制作好的系統(tǒng)盤,再加上你的項(xiàng)目代碼,跑起來(lái)就可以提供服務(wù)了。
總結(jié):這些概念沒(méi)實(shí)際使用過(guò)docker很難理解,后續(xù)會(huì)通過(guò)實(shí)際例子說(shuō)明.主要注意images registry container這三個(gè)概念的理解.
registry即遠(yuǎn)程倉(cāng)庫(kù),類似于github和maven的倉(cāng)庫(kù).用戶可以在這個(gè)倉(cāng)庫(kù)上拉取(pull,類似git的pull)其他開(kāi)發(fā)人員上傳(push)到鏡像倉(cāng)庫(kù)的鏡像,也可以上傳自己的鏡像到進(jìn)行倉(cāng)庫(kù)
images 鏡像,編程人員實(shí)際要編寫的程序包,可以理解成一個(gè)待運(yùn)行的程序
container容器,鏡像run以后的容器,可以看成是一個(gè)程序運(yùn)行后的進(jìn)程
2.toolbox安裝包獲取及安裝
因?yàn)閠oolbox安裝包的官網(wǎng)下載需要翻墻,所以從阿里云提供的鏡像地址下載.
地址:http://mirrors.aliyun.com/docker-toolbox/windows/

???????? 此目錄下有docker-for-windows和docker-toolbox倆個(gè)目錄, docker-toolbox目錄下是當(dāng)前系統(tǒng)需要的安裝包, docker-for-windows是為win10專業(yè)版提供的安裝包(安裝需要hyper-v).
???????? 直接獲取最新的版本.

???????? 打開(kāi)exe的安裝程序,選擇安裝目錄,注意目錄中不可有中文.

???????? 此處需要注意勾選了git后,此安裝程序會(huì)先卸載系統(tǒng)本身的git,然后再進(jìn)行安裝,如系統(tǒng)本身已安裝git,可以將此處的勾取消.

勾選最后一項(xiàng).next,next.安裝完成后會(huì)得到3個(gè)快捷方式.

???????? vm虛擬機(jī)管理,docker quickstart是docker命令行窗口的啟動(dòng)快捷方式,部分情況下可能會(huì)失效,如有這種情況,請(qǐng)按下文中的方式啟動(dòng).
???????? 安裝完成后,查看安裝目錄.

boot2docker.iso是docker虛擬機(jī)安裝需要的鏡像文件;start.sh是docker命令行終端的啟動(dòng)項(xiàng),即上面的docker
quickstart,后續(xù)將通過(guò)start.sh啟動(dòng)docker.
安裝完成后可以通過(guò)cmd查看是否安裝成功和安裝路徑等信息,命令是docker-machine

3.安裝docker虛擬機(jī)
默認(rèn)情況下docker client會(huì)安裝保存在C盤中,先修改安裝目錄.
打開(kāi)git的命令行,輸入 notepad .bash_profile
此命令會(huì)創(chuàng)建并打開(kāi).bash_profile配置文件
在此文件中輸入
export MACHINE_STORAGE_PATH='D:\docker_home'
安裝目錄自行指定,此處指定的目錄是D盤下的docker_home目錄,關(guān)閉.bash_profile文件,創(chuàng)建相應(yīng)的目錄,并在目錄下創(chuàng)建一個(gè)cache文件夾,可嘗試將docker安裝目錄中的boot2docker.iso文件復(fù)制進(jìn)cache文件夾,不過(guò)實(shí)際安裝中會(huì)去github上獲取最新的boot2docker.iso,反正我安裝的時(shí)候最新的iso版本是18.03,而vitrualTool的版本是.17.04的,安裝得到的iso也是17.04版本的.
???????? git命令行如下

???????? 接下來(lái)需要從docker網(wǎng)站下載鏡像文件,此處需要使用阿里云加速(自行注冊(cè)阿里云賬號(hào)).
???????? 網(wǎng)址:https://dev.aliyun.com/search.html

???????? 點(diǎn)擊右上角的管理中心

???????? 點(diǎn)擊鏡像加速器中的windows

復(fù)制第一個(gè)黑框中的命令,在git命令行中執(zhí)行(務(wù)必在git命令行中執(zhí)行,cmd執(zhí)行會(huì)有奇奇怪怪的錯(cuò)誤,比如boot2docker.iso下不到,當(dāng)然也可能是我操作的時(shí)候網(wǎng)絡(luò)原因).
命令: docker-machine -s "D:\docker_home" create
--engine-registry-mirror=https://81liaq8f.mirror.aliyuncs.com -d virtualbox default
此命令是創(chuàng)建一個(gè)名為default的虛擬機(jī)
此處指定了安裝目錄,如果一切順利,輸出如下圖.

查看D:\docker_home

machines即下載完成的虛擬機(jī)目錄.
???????? 打開(kāi)VM虛擬機(jī)管理,可以看到

此時(shí)可以點(diǎn)擊docker安裝目錄下的start.sh啟動(dòng)docker終端,此處的docker machine創(chuàng)建完成后就啟動(dòng)了,需要重新啟動(dòng)docker machine時(shí)可以在git命令行中執(zhí)行命令:
???????? docker-machine start

提示的ip:192.168.99.100就是虛擬機(jī)的ip,可以通過(guò)SSH工具連接,端口號(hào)是22,賬號(hào)密碼如下

賬號(hào)密碼具體在哪里設(shè)置待補(bǔ)充

下次可能講一下鏡像的基本操作和一些常用命令,不知道有沒(méi)有下次.
上面的內(nèi)容大部分是原創(chuàng)的,一些引用的內(nèi)容如果有作者發(fā)現(xiàn)可以私信或評(píng)論告訴我,我會(huì)加上引用或者刪除文章.
初學(xué)docker,應(yīng)該還有一些遺漏或者講的不對(duì)的地方,歡迎補(bǔ)充指正,謝謝.