1、初步認識Dockerjava
1.Docker歷史git
2.什麼是Docker?github
3.Docker思想docker
4.Docker解決了什麼問題?tomcat
2、走進Docker服務器
1.Docker三個核心概念運維
Docker運行程序的過程:去倉庫把鏡像拉到本地,用一條命令將鏡像運行起來變成容器ui
2.Docker鏡像spa
鏡像英文名image,鯨魚馱着的全部的集裝箱就是一個鏡像,本質上來講,鏡像就是一系列的文件,它能夠包括應用程序的文件,也能夠包括運行環境的文件,Docker把這些文件都保存到了本地。操作系統
Docker以什麼格式保存文件的呢?鏡像的存儲格式是使用的Linux的一種存儲技術——聯合文件系統unionfs,它是一種分層的文件系統,它能夠將不一樣的文件目錄掛到同一個虛擬文件系統下。好比,test1目錄下有opt、usr、var三個文件夾,test2下有README、java、tomcat三個文件,聯合文件系統能夠在同一個文件夾下看到opt、usr、var、README、java、tomcat,即test一、test2文件的集合。經過這樣的一種方式,聯合文件系統就能夠實現文件的分層,好比test1能夠當作第一層(包括opt、usr、var),test2能夠當作第二層(包括README、java、tomcat)。Docker鏡像就是利用這種分層的思想來實現鏡像的存儲。
下面這張圖是一個鏡像的存儲格式,能夠明顯看到這張圖是分層的,就像是一個個的集裝箱摞在一塊兒,這就是鏡像的最直觀的存儲方式。
2.Docker容器
Docker容器本質就是一個進程,爲了便於理解,能夠先把容器想象成一個虛擬機(看上圖),每一個虛擬機都有本身的文件系統,你們能夠把整個一部分看做是容器的文件系統,也就至關於虛擬機全部的文件系統。與虛擬機的區別在於,它這裏面的文件系統是一層一層的,並且下面的N層都是隻讀的,只有最頂層是可讀可寫的(由於程序運行起來確定是須要作一些日誌、文件或者對系統文件作一些修改等操做)。
若是程序運行中要寫一個鏡像裏的文件,會發生什麼呢?
由於鏡像中的每一層都是隻讀的,因此它在寫這個文件以前,會先把這個文件所在這層拷貝到容器的最頂層,而後再對它進行修改,修改以後,當咱們的應用讀一個文件時,會先從頂層開始查找,若是沒有才會接着找下一層,由於這個文件已經被拷貝到了最頂層了,在最頂層才能找到它最新的內容。
因爲容器的最頂層是能夠修改的,而鏡像每層都是隻讀的,這樣就能夠保證同一個鏡像能夠生成多個容器獨立運行,並且它們之間不會互相干擾!
3.Docker倉庫
構建鏡像的目的是爲了能在不一樣的機器、環境中運行。
(1)可是如何完成將鏡像從本地到目的地傳輸過程呢?
這就須要用到Docker倉庫,首先須要將鏡像放入Docker倉庫中去,再由目的地從Docker倉庫中將鏡像拉過去。
(2)可是誰提供的Docker倉庫呢?
那確定是須要有一箇中央服務器,提供一個地址,讓我能夠去訪問它。
(3)可是誰提供這樣的服務呢?
Docker本身就提供了!
地址:
本文爲原創文章,若是對你有一點點的幫助,別忘了點贊哦!比心!如需轉載,請註明出處,謝謝!