docker初探

簡(jiǎn)介

  • Docker是一個(gè)虛擬環(huán)境容器,可以將你的開發(fā)環(huán)境、代碼、配置文件等一并打包到這個(gè)容器中,并發(fā)布和應(yīng)用到任意平臺(tái)中。使用linux容器來部署應(yīng)用,也被稱為容器化(containerization)。也就是一種容器技術(shù),開發(fā)環(huán)境和正式環(huán)境只需要使用同一套容器配置即可,不需要單獨(dú)地去安裝各種依賴等等。docker其中包括以下幾個(gè)關(guān)鍵詞概念。
  • 鏡像(image):鏡像是一個(gè)可執(zhí)行的包,其中包含了需要執(zhí)行應(yīng)用的所有內(nèi)容,比如:代碼、運(yùn)行環(huán)境(runtime)、依賴庫、環(huán)境變量、配置文件等等。
  • 容器(Container):容器是基于一個(gè)鏡像生成的運(yùn)行環(huán)境實(shí)例,通常一個(gè)容器中運(yùn)行一個(gè)應(yīng)用,然后可以讓容器之間相關(guān)聯(lián),但docker引擎會(huì)把各個(gè)容器分隔獨(dú)立運(yùn)作的。
容器與虛擬機(jī)的區(qū)別
image

image
  • 上面兩張圖說明了,容器與虛擬機(jī)之間的區(qū)別,虛擬機(jī)是擁有自己獨(dú)立的操作系統(tǒng)的,比如centOS虛擬機(jī)就是,帶有centOS操作系統(tǒng)的虛擬機(jī),而容器則沒有,容器直接共享使用宿主環(huán)境的內(nèi)核和操作系統(tǒng)。相比較下來,容器就更加輕量,不會(huì)去占用過多的內(nèi)存(memory)。

安裝

  • Docker可以安裝在Windows、Linux、Mac等各個(gè)平臺(tái)上。具體可以查看文檔,其中區(qū)分CE和EE版本,CE就是社區(qū)版本免費(fèi)的,安裝這個(gè)即可。安裝完畢后,在命令行輸入docker --version即可查看docker版本信息。

獲取鏡像

  • 首先可以通過官方獲取docker原生的鏡像,可在官網(wǎng)查看官方提供的鏡像,然后在本地通過docker image pull 鏡像名稱即可下載鏡像到本地,再通過docker image ls查看本地所有的鏡像信息。
    image
  • 還可以自己創(chuàng)建鏡像,新建一個(gè)文件,然后在里面創(chuàng)建一個(gè)文件,命名為Dockerfile,這個(gè)文件相當(dāng)于docker鏡像的配置文件,docker引擎會(huì)基于該文件來創(chuàng)建鏡像。這里在Dockerfile中輸入以下代碼:
FROM nginx
COPY . /usr/share/nginx/html
EXPOSE 80
  • 第一句表示該鏡像會(huì)去拉取官方nginx鏡像,第二句是將該文件夾下面的文件全部復(fù)制到容器的對(duì)應(yīng)的文件夾目錄下。第三句暴露一個(gè)80端口。
  • 到這里,一個(gè)簡(jiǎn)單的Dockerfile就完成了,然后在當(dāng)前目錄下的命令行輸入docker image build -t nginx-demo-image .命令來創(chuàng)建一個(gè)image鏡像,nginx-demo-image是鏡像名稱,可以隨便取,命令最后的一個(gè).點(diǎn)號(hào)表示當(dāng)前路徑,不可省略。創(chuàng)建成功后,在輸入docker image ls來查看。

運(yùn)行容器

  • 有了鏡像之后,就可以基于鏡像來運(yùn)行容器了,以之前上面創(chuàng)建的nginx-demo-image鏡像為例,在命令行輸入docker container run -p 8088:80 -it --rm nginx-demo-image,即可基于該鏡像,執(zhí)行一個(gè)容器。
  • 容器訪問機(jī)器的資源類似于網(wǎng)絡(luò)接口,需要通過copy把文件復(fù)制到容器里,然后容器與機(jī)器系統(tǒng)的其他部分是隔離的,所以需要定義容器內(nèi)部的端口與外部端口的map映射, -p 8088:80表示容器里的80端口映射到宿主環(huán)境的8088端口,這種設(shè)置常見于開發(fā)環(huán)境,如果是正式環(huán)境應(yīng)該是容器80端口與宿主環(huán)境的80端口相對(duì)應(yīng)。
  • 容器運(yùn)行成功后,可以在命令行輸入docker container ls查看容器信息,因?yàn)槲覀儓?zhí)行的是nginx容器,也可以在瀏覽器url輸入localhost:8088,看到wellcome nginx信息,也表示容器運(yùn)行成功了。
    image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容