一、前言
Docker容器已經(jīng)發(fā)布許久,但作為一名程序員如今才開始接觸,實(shí)在是罪過……
在此之前,我還沒有對Docker進(jìn)行過深入的了解,對它的認(rèn)識仍停留在:這是一種新型的虛擬機(jī)。這樣的層面。今天就我的初次體驗進(jìn)行記錄。聲明一點(diǎn):以下內(nèi)容大部分是主觀片面的,另有來自百度的(嗯,就是百度)。要是有什么說的不對,或者是理解有問題的地方,還請大家告訴我,先謝謝大家了。
二、環(huán)境
我的基礎(chǔ)運(yùn)行環(huán)境是運(yùn)行在Win10專業(yè)版HyperV虛擬機(jī)中的CentOS7-Minimal版本。新裝的虛擬機(jī),保證運(yùn)行環(huán)境不受奇奇怪怪的東西影響。
CentOS安裝Docker簡潔明快:sudo yum install docker -y。等著就行……安裝內(nèi)容如下:

三、啟動Docker服務(wù)
與安裝一樣簡潔明快:sudo systemctl start docker。如果沒有報錯,那就是啟動完成了。(我喜歡用systemctl,反正只要能啟動服務(wù),你想咋啟動就咋啟動。)命令沒有回顯,我就不截圖了。
四、獲取容器鏡像
Docker提供鏡像搜索命令(search),方便你快速找到自己想要的鏡像。當(dāng)然,鏡像的源你可以自己配置,默認(rèn)是docker.io。我只打算找一個CentOS的鏡像,所以默認(rèn)的源就行。搜索命令如下:

可以看到,搜索到好多鏡像。最后兩列字面意思我沒理解,但是應(yīng)該是標(biāo)記官方鏡像和開發(fā)者上傳的鏡像。我選擇第一個,標(biāo)記著“官方的”,應(yīng)該沒有裝任何其他的東西。
嗯,接下來就是下載(pull)鏡像了。命令如下(渣渣網(wǎng)速):

可以看到,默認(rèn)下載的是最新的(latest)。當(dāng)然,你可以下載其他非最新的版本,具體操作請查詢pull命令的相關(guān)參數(shù)。我只要最新的(傲嬌臉)。這個鏡像大小也是6 。這么小,估計真的是什么都沒裝吧(還是壓縮了?)……

上面是下載完成后顯示的信息。
五、創(chuàng)建容器
接下來就是從剛下載的鏡像創(chuàng)建一個容器了。新的容器的所有內(nèi)容都會從鏡像里拷貝(那個改是拷貝吧)。
聲明:由于輸入sudo太麻煩,所以下面的演示都用root用戶執(zhí)行。
創(chuàng)建容器(run)命令就比較復(fù)雜了,參數(shù)較多:

如上,我來一個一個解釋:
-itd:這是 -i -t -d 的簡寫。-i 表示保持打開標(biāo)準(zhǔn)輸入流(stdin),無論是否連接到此容器。-t 為容器分配一個虛擬的tty。-d 表示后臺模式運(yùn)行容器,即容器啟動后將斷開與當(dāng)前終端的連接。(之后會演示怎么再連回來)。 --name:這是為容器起一個名字,之后與容器的交互需要用到,當(dāng)然用容器的Id也是可以的(就是run命令后那個巨長的回顯)。當(dāng)然,不寫的話也會有默認(rèn)的名字。 -v:表示掛載宿主機(jī)(這個稱呼對嗎?)目錄到容器的目錄(宿主機(jī)目錄路徑:容器目錄路徑)。當(dāng)然可以設(shè)置讀寫屬性,這個就不說了,可以自行探索。 -p:表示映射(端口轉(zhuǎn)發(fā)?)主機(jī)端口至容器端口(主機(jī)端口:容器端口)。這個參數(shù)可以重復(fù)出現(xiàn),映射多個端口。這個參數(shù)也有許多情況,也請自行探索。 centos:這個是本地鏡像名稱(centos),必須是已經(jīng)下載(pull)到本地的鏡像。當(dāng)然,若是本地沒有,Docker會執(zhí)行search并詢問你是不是要下載。 /bin/bash:這個是本次啟動的鏡像要執(zhí)行的任務(wù)。這個門道比較多,我在后面會說一下。 此處省略了-a參數(shù)。-a參數(shù)可以指定連接準(zhǔn)輸入流(STDIN)、標(biāo)準(zhǔn)輸出流(STDOUT)和標(biāo)準(zhǔn)錯誤流(STDERR),默認(rèn)好像是都連接。可以顯式使用,以連接指定的流。新聞熱點(diǎn)
疑難解答
圖片精選