Docker簡(jiǎn)介
docker誕生于2013年初,是dotCloud公司發(fā)布的一款輕量級(jí)的居砖、開(kāi)源的Linux應(yīng)用容器引擎,它基于go語(yǔ)言實(shí)現(xiàn),并且允許開(kāi)發(fā)者將應(yīng)用及其依賴打包到一個(gè)可移植的鏡像中,它使得測(cè)試與部署比以往任何時(shí)候都要快速簡(jiǎn)單,docker的出現(xiàn)有效的解決了在微服務(wù)的架構(gòu)下,服務(wù)粒度細(xì),服務(wù)數(shù)量多所導(dǎo)致的開(kāi)發(fā)環(huán)境搭建,部署和運(yùn)維成本高的問(wèn)題.
如上圖中的docker圖標(biāo),這只托著許多集裝箱的鯨魚(yú)就相當(dāng)于一個(gè)docker引擎,上面的集裝箱則相當(dāng)于相互隔離的docker容器,每個(gè)容器中都運(yùn)行著自己的應(yīng)用程序.
Docker與傳統(tǒng)虛擬機(jī)的區(qū)別
docker的技術(shù)架構(gòu):
傳統(tǒng)虛擬機(jī)的技術(shù)架構(gòu):
兩者的主要區(qū)別是:
- docker容器可以在秒級(jí)啟動(dòng),傳統(tǒng)的虛擬機(jī)啟動(dòng)一般為分鐘級(jí).
- docker容器基于進(jìn)程隔離,且共享操作系統(tǒng)內(nèi)核,占用空間非常小,一般為M級(jí)別,虛擬機(jī)是在物理硬件層面上的虛擬化,每個(gè)虛擬機(jī)必須包含一整套操作系統(tǒng),應(yīng)用程序和依賴庫(kù)等,占用空間一般為G級(jí)別.
- docker容器對(duì)系統(tǒng)資源的利用率很高,單機(jī)可啟動(dòng)上千個(gè)docker容器,而虛擬機(jī)需要模擬硬件與網(wǎng)絡(luò)資源,會(huì)占用大量系統(tǒng)開(kāi)銷,單機(jī)一般最多只能啟動(dòng)幾十個(gè)虛擬機(jī).
Docker的架構(gòu)
docker使用c/s架構(gòu),client 通過(guò)接口與server進(jìn)程通信實(shí)現(xiàn)容器的構(gòu)建,運(yùn)行和發(fā)布.client和server可以運(yùn)行在同一臺(tái)集群,也可以通過(guò)跨主機(jī)實(shí)現(xiàn)遠(yuǎn)程通信.
docker的幾個(gè)核心概念:
- docker引擎(Docker Engine)
docker引擎即運(yùn)行在宿主機(jī)(DOCKER_HOST)上的一個(gè)后臺(tái)進(jìn)程,也稱為Docker Daemon,其本質(zhì)上就是一個(gè)服務(wù),只要啟動(dòng)該服務(wù)就可以通過(guò)docker客戶端發(fā)送相關(guān)的命令與引擎通訊了. - docker客戶端
docker客戶端是和后臺(tái)服務(wù)交互的主要工具,客戶端有兩種,一種是命令行工具,輸入docker命令后,后臺(tái)服務(wù)就能執(zhí)行該命令了,另一種是REST API,一般在應(yīng)用程序中我們使用REST API來(lái)與docker引擎交互. - docker鏡像(Docker Image)
鏡像是只讀的指令模板,用于創(chuàng)建docker容器,與系統(tǒng)光盤(pán)有點(diǎn)類似,用戶可以構(gòu)建鏡像或下載使用其他人構(gòu)建的鏡像,我們只需讀取鏡像便能將其載入docker引擎中,并啟動(dòng)一個(gè)容器運(yùn)行鏡像中的程序. - docker容器
docker容器是docker鏡像的可運(yùn)行實(shí)例,當(dāng)我們獲取到鏡像后,可隨時(shí)運(yùn)行該鏡像,此時(shí)便會(huì)啟動(dòng)一個(gè)docker容器,容器中將運(yùn)行鏡像中的應(yīng)用程序,用戶可以使用docker api或者命令行來(lái)運(yùn)行、啟動(dòng)、停止蹭越、移動(dòng)或刪除容器,運(yùn)行容器時(shí)可以提供配置元數(shù)據(jù),例如網(wǎng)絡(luò)信息或環(huán)境變量,容器是一個(gè)隔離安全的應(yīng)用程序平臺(tái),但可以訪問(wèn)在不同主機(jī)或容器中運(yùn)行的資源,以及持久存儲(chǔ)或數(shù)據(jù)庫(kù). - docker鏡像注冊(cè)中心(Docker Registry)
docker官方提供了一個(gè)Docker Hub的鏡像注冊(cè)中心,用于存放公開(kāi)的和私有的鏡像倉(cāng)庫(kù)(Docker Respository),當(dāng)然我們也可以在本地局域網(wǎng)搭建自己的注冊(cè)中心,當(dāng)用戶使用docker pull或者docker run時(shí)就會(huì)從注冊(cè)中心中下載鏡像,當(dāng)使用push時(shí)就會(huì)推送我們的鏡像到鏡像中心去.
Docker的安裝使用
docker官方建議將docker安裝運(yùn)行在linux系統(tǒng)上,在linux系統(tǒng)上可以直接運(yùn)行docker引擎,在mac osx或者windows系統(tǒng)上需要通過(guò)linux vm才能運(yùn)行docker 引擎.,我們?cè)诒镜豤entos7.3上安裝docker,且必須同時(shí)滿足CPU為64位,Linux內(nèi)核版本為3.10以上.
安裝步驟:
1.執(zhí)行yum update 更新yum包安裝最新的docker.
2.添加yum的docker倉(cāng)庫(kù)包
3.安裝docker引擎
4.啟動(dòng)docker
5.查看docker版本
6.使用docker國(guó)內(nèi)鏡像
下面來(lái)看看兩個(gè)docker的簡(jiǎn)單使用
運(yùn)行docker自帶的hello world程序
以后臺(tái)模式在80端口啟動(dòng)nginx服務(wù)
打開(kāi)瀏覽器輸入http://192.168.56.101可以看到