我們知道,軟體依賴的環境大致包括:
docker作為乙個軟體貨櫃化平台,可以讓開發者構建應用程式時,將它與其依賴環境一起打包到乙個容器中,然後很容易地發布和應用到任意平台中。
鯨魚是作業系統。
要交付的應用程式是各種貨物,要將各種形狀和尺寸不同的貨物放到大鯨魚上,得考慮每件貨物怎麼安放(應用程式配套的環境),還得考慮貨物和貨物之間能否重疊起來(應用程式依賴的環境是否會衝突)。
現在使用了貨櫃(容器)把每件貨物都放到貨櫃裡,這樣大鯨魚可以用同樣地方式安放、堆疊集裝了,省事省力。
即:打包放到鯨魚上,鯨魚放到伺服器上。也就是「build——ship——run」,這樣在自己的電腦上怎麼執行,在伺服器上也會怎麼執行。
用docker執行乙個程式的過程:
去倉庫把映象拉到本地,然後用一條命令把映象執行起來,變成容器。
定義:docker 映象可以看作是乙個特殊的檔案系統,除了提供容器執行時所需的程式、庫、資源、配置等檔案外,還包含了一些為執行時準備的一些配置引數(如匿名卷、環境變數、使用者等)。
作用類似於虛擬機器的快照,用來建立新的容器。
特點:映象不包含任何動態資料,其內容在構建之後也不會被改變。
執行程式的地方
映象是靜態的,每一層都只是可讀的,而容器是動態的,裡面執行著我們指定的應用。
存放映象的地方,和git類似
why?
在知乎上看到乙個很好的解釋:
簡單來說就是,不同的應用程式所依賴的環境不一樣,如果把他們依賴的軟體都安裝在乙個伺服器上,不僅需要除錯很久,而且可能會有衝突。如果想把兩個應用程式隔離起來,可以在伺服器上建立不同的虛擬機器,不同的虛擬機器放不同的應用,但是虛擬機器的開銷比較高。docker作為輕量級的虛擬機器,是乙個很好的工具。
作用?解決執行環境不一致所導致的問題。這樣就不會產生「本地執行沒問題,可一到伺服器上就不行了」的情況。
限定最大的cpu使用記憶體硬碟,這樣就起到了隔離的作用,避免產生「一塊**產生死迴圈,把磁碟佔滿了,其它程式也掛了」的情況。
雙11時擴充套件機器用。
總結成一句話:docker的標準化讓快速擴充套件,彈性伸縮變得簡單
使用之前和之後
之前,可以發現,每發布乙個程式,都要走一遍以下的流程:
之後:docker的使用?——hello world
從**庫中拉取映象
查詢到拉取成功
執行映象,檢視到結果
原理解析
docker pull的時候,docker damemon先在本地倉庫中找,如果沒有,再去**倉庫中拉取,拉取到本地倉庫就好了。
docker run的時候,也是先在本地倉庫中找,如果有,直接放到容器裡用。否則,去**倉庫中拉取。
docker是什麼,docker是幹什麼的
以下說明來自 劉允鵬 知乎 docker的思想來自於貨櫃,貨櫃解決了什麼問題?在一艘大船上,可以把貨物規整的擺放起來。並且各種各樣的貨物被貨櫃標準化了,貨櫃和貨櫃之間不會互相影響。那麼我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在貨櫃裡封裝的好好的,那我就可以用一艘大船把他們都運走...
學習python可以幹什麼
python是什麼?python的中文名稱是蟒蛇,是一種計算機程式語言 是一種動態的 物件導向的指令碼語言。最初是用來編寫自動化指令碼的,隨著版本的不斷更新和語言新功能的新增,越來越多被用於獨立的 大型專案的開發。python語言的特點 1www.cppcns.com 簡單易學 2 速度快 pyth...
Docker是幹什麼用的?
長話短說,這裡我就不對docker進行系統的介紹說明了,網上很多介紹文章,我想新手的話可以先網上大概了解一下docker的基本概念。有乙個模糊的 大概的感覺就行了。多看資料文件,有百利而無一害。docker不是虛擬機器 很多人一開始學習docker的時候,感覺docker很像虛擬機器,誤以為dock...