什麼是docker,它可以幹什麼

2022-08-09 18:30:16 字數 1632 閱讀 1602

我們知道,軟體依賴的環境大致包括:

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...