摘要:通過指令可以將可修改層提交到鏡像中,從而生成一個(gè)新的鏡像。倉(cāng)庫(kù)有了鏡像之后,可以很方便的在不同的機(jī)器上運(yùn)行一致的環(huán)境。數(shù)據(jù)卷是獨(dú)立于容器存在的,容器銷毀后數(shù)據(jù)卷仍然存在。
Docker是一款比傳統(tǒng)虛擬機(jī)軟件更先進(jìn)的虛擬化工具,可以快速的在不同機(jī)器上搭建出一致的開發(fā)、調(diào)試、運(yùn)行環(huán)境。它的核心概念有鏡像、容器和倉(cāng)庫(kù)。
鏡像(Image)類似于ISO文件,是一個(gè)打包好的運(yùn)行環(huán)境。一個(gè)鏡像可以是一個(gè)linux操作系統(tǒng),一個(gè)nodejs運(yùn)行環(huán)境等等。鏡像不可修改。
容器(Container)利用鏡像可以創(chuàng)建出若干個(gè)容器(Container),從而運(yùn)行鏡像中預(yù)設(shè)的軟件。如果把鏡像比作類,一個(gè)容器就是鏡像類的一個(gè)實(shí)例。容器是通過在鏡像的基礎(chǔ)上添加了一個(gè)可修改層實(shí)現(xiàn)的。我們可以在這個(gè)可修改層上添加新的文件。通過docker commit指令可以將可修改層提交到鏡像中,從而生成一個(gè)新的鏡像。事實(shí)上,鏡像就是這樣一層層糊出來的。
倉(cāng)庫(kù)(Repository)有了鏡像之后,可以很方便的在不同的機(jī)器上運(yùn)行一致的環(huán)境。為了方便鏡像共享,我們需要一個(gè)集中的存儲(chǔ)、分發(fā)鏡像的地方,這就是Docker registry。在這上面,有若干個(gè)倉(cāng)庫(kù)(Repository),每個(gè)倉(cāng)庫(kù)可以包含多個(gè)標(biāo)簽,一個(gè)標(biāo)簽代表一個(gè)鏡像。如ubuntu倉(cāng)庫(kù)上有不同版本的標(biāo)簽:latest、14.04,16.04,分別代表不同版本的ubuntu鏡像。
one more thing入門教程可以看這個(gè):Docker — 從入門到實(shí)踐
docker commit可以理解鏡像的構(gòu)成原理,但實(shí)際上,我們是通過定制配置文件dockerfile的方式來創(chuàng)建鏡像的。
docker中的容器是與外部環(huán)境完全隔離的,如果需要數(shù)據(jù)共享,需要在容器上掛載數(shù)據(jù)卷(volume)。數(shù)據(jù)卷是獨(dú)立于容器存在的,容器銷毀后數(shù)據(jù)卷仍然存在。
Docker基于Linux系統(tǒng)開發(fā)的,在Windows上安裝有如下方式:
如果是64位Windows 10 Pro(注意關(guān)鍵字,缺一不可:64位、Win10、Pro),并且開啟了Hyper-V,可以用官方的Docker for Windows軟件直接安裝;
否則用DockerToolbox軟件進(jìn)行安裝。
以上2種方式,都是在Windows上虛擬出了一個(gè)linux來,比較糾結(jié)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/27210.html
摘要:完成之后運(yùn)行命令你的輸出可能會(huì)像這樣和都為,這是因?yàn)閯倓傇诰帉憰r(shí)沒有指定它們。多階段構(gòu)建鏡像多階段構(gòu)建鏡像其實(shí)運(yùn)行程序只需要就行,我們沒有必要使用作為基礎(chǔ)鏡像。但把程序打包成包,然后再交給的方式太麻煩了。運(yùn)行簡(jiǎn)單的Java程序先在當(dāng)前目錄創(chuàng)建App.java文件public class App{ public static void main(String[] args){ ...
摘要:正式版現(xiàn)已全面發(fā)布就在此刻,一個(gè)建立在容器基礎(chǔ)上的極簡(jiǎn)發(fā)行版。不需要的庫(kù)和服務(wù)將被淘汰,這將顯著降低操作系統(tǒng)的占用空間,并最大限度地減少了更新修護(hù)和維護(hù)容器主機(jī)操作系統(tǒng)的麻煩。 RancherOS正式版現(xiàn)已全面發(fā)布!就在此刻,一個(gè)建立在容器基礎(chǔ)上的極簡(jiǎn)Linux發(fā)行版。 RancherOS篩除了任何不必要的庫(kù)和服務(wù),因此RancherOS占用的內(nèi)存是其它容器操作系統(tǒng)的三分之一。簡(jiǎn)化的容...
摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開發(fā)最佳實(shí)踐 前面的章節(jié)中,...
摘要:應(yīng)用化極簡(jiǎn)教程陳光劍基于的企業(yè)級(jí)應(yīng)用開發(fā)最佳實(shí)踐前面的章節(jié)中,我們都是在環(huán)境中開發(fā)運(yùn)行測(cè)試應(yīng)用程序。關(guān)鍵字是分布式應(yīng)用微服務(wù)容器虛擬化。通常,在企業(yè)項(xiàng)目實(shí)踐中,會(huì)實(shí)現(xiàn)一套應(yīng)用部署發(fā)布的自動(dòng)化運(yùn)維平臺(tái)工具。 Spring Boot 應(yīng)用 Docker 化 《Spring Boot 2.0極簡(jiǎn)教程》(陳光劍)—— 基于 Gradle + Kotlin的企業(yè)級(jí)應(yīng)用開發(fā)最佳實(shí)踐 前面的章節(jié)中,...
閱讀 2948·2023-04-25 18:58
閱讀 1059·2021-11-25 09:43
閱讀 1274·2021-10-25 09:46
閱讀 3569·2021-09-09 11:40
閱讀 1808·2021-08-05 09:59
閱讀 935·2019-08-29 15:07
閱讀 1016·2019-08-29 12:48
閱讀 790·2019-08-29 11:19