1. 程式人生 > >什麽是Docker,它可幹什麽?

什麽是Docker,它可幹什麽?

幹什麽 官網下載 內存 電腦 https 總結 win text 虛擬

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

1• 配置文件
2• 代碼
3• tomcat
4• JDK
5• 操作系統



Docker作為一個軟件集裝箱化平臺,可以讓開發者構建應用程序時,將它與其依賴環境一起打包到一個容器中,然後很容易地發布和應用到任意平臺中。

技術分享圖片
思想:

  1. 集裝箱
  2. 標準化
  3. 隔離

核心:

  1. docker有3大核心:鏡像、容器、倉庫。

鯨魚是操作系統。
要交付的應用程序是各種貨物,要將各種形狀和尺寸不同的貨物放到大鯨魚上,得考慮每件貨物怎麽安放(應用程序配套的環境),還得考慮貨物和貨物之間能否重疊起來(應用程序依賴的環境是否會沖突)。


現在使用了集裝箱(容器)把每件貨物都放到集裝箱裏,這樣大鯨魚可以用同樣地方式安放、堆疊集裝了,省事省力。
即:打包放到鯨魚上,鯨魚放到服務器上。也就是“build——ship——run”,這樣在自己的電腦上怎麽運行,在服務器上也會怎麽運行。
用docker運行一個程序的過程:
去倉庫把鏡像拉到本地,然後用一條命令把鏡像運行起來,變成容器。

(1) 鏡像-復制的程序
定義:
Docker 鏡像可以看作是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(如匿名卷、環境變量、用戶等)。

作用
類似於虛擬機的快照,用來創建新的容器。

特點:
鏡像不包含任何動態數據,其內容在構建之後也不會被改變。

技術分享圖片
(2)容器-集裝箱
運行程序的地方
鏡像是靜態的,每一層都只是可讀的,而容器是動態的,裏面運行著我們指定的應用。
(3)倉庫-存放鏡像的地方
存放鏡像的地方,和git類似
why?
在知乎上看到一個很好的解釋:

簡單來說就是,不同的應用程序所依賴的環境不一樣,如果把他們依賴的軟件都安裝在一個服務器上,不僅需要調試很久,而且可能會有沖突。
如果想把兩個應用程序隔離起來,可以在服務器上創建不同的虛擬機,不同的虛擬機放不同的應用,但是虛擬機的開銷比較高。docker作為輕量級的虛擬機,是一個很好的工具。

技術分享圖片
作用?
解決運行環境不一致所導致的問題。這樣就不會產生“本地運行沒問題,可一到服務器上就不行了”的情況。
限定最大的cpu使用內存硬盤,這樣就起到了隔離的作用,避免產生“一塊代碼產生死循環,把磁盤占滿了,其它程序也掛了”的情況。
雙11時擴展機器用。

總結成一句話:docker的標準化讓快速擴展,彈性伸縮變得簡單

使用之前和之後

技術分享圖片
之前,可以發現,每發布一個程序,都要走一遍以下的流程:

之後:


how?
docker安裝?
檢查計算機是否符合要求,版本和是否開啟了虛擬化之類的。
去官網下載並安裝
測試是否安裝成功
這是一篇描述在win10上安裝docker的博客:
https://blog.csdn.net/hunan961/article/details/79484098

docker的使用?——hello world
從中央庫中拉取鏡像

查詢到拉取成功

運行鏡像,查看到結果

原理解析

docker pull的時候,Docker damemon先在本地倉庫中找,如果沒有,再去中央倉庫中拉取,拉取到本地倉庫就好了。
docker run的時候,也是先在本地倉庫中找,如果有,直接放到容器裏用。否則,去中央倉庫中拉取。
---------------------
原文:https://blog.csdn.net/qsbbl/article/details/86715741

什麽是Docker,它可幹什麽?