docker 不包含依赖 打包_Docker容器技术(概念篇)
微信公眾號:Java患者
專注Java領域技術分享
Docker介紹
????????Docker是基于Go語言實現的開源應用容器引擎,通過對應用組件的封裝、分發、部署、運行等生命周期的管理,使的用戶的應用及其運行環境能夠做到“一次封裝,到處運行”。
虛擬化技術
????????虛擬機:虛擬機是通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。使得應用程序,操作系統和硬件三者之間的邏輯保持不變。由于在計算機中創建虛擬機時,需要將實體機的部分硬盤和內存容量作為虛擬機的硬盤和內存容量,每個虛擬機都有獨立的CMOS、硬盤和操作系統,虛擬機存在資源占用多、冗余步驟多、啟動慢等缺點。??????? Linux容器:與虛擬機不同,Linux容器不是模擬一個完整的操作系統,而是對進程進行隔離,形成一個“容器”。不需要捆綁一整套操作系統,只需要軟件工作所需要的庫資源和設置打包放在容器中,這意味著從開發到測試再到生產的整個過程中,Linux 容器都具有可移植性和一致性。容器內的應用進程直接運行與宿主的內核,容器自己沒有內核,而且沒有進行硬件虛擬,系統因此而變得高效輕量并保證部署在任何環境種的軟件都始終如一運行。而我們所講的Docker就是基于Linux容器技術發展而來的。
為什么需要容器技術
????????容器可以確保您的應用擁有必需的庫、依賴項和文件,讓您可以在生產中自如地遷移這些應用,無需擔心會出現任何負面影響。實際上,您可以將容器鏡像中的內容,視為 Linux 發行版的一個安裝實例,因為其中完整包含 RPM 軟件包、配置文件等內容。但是,安裝容器鏡像發行版,要比安裝新的操作系統副本容易得多。這樣可以避免危機,做到皆大歡喜。
生產中為什么使用Docker容器
????????可以實現一次構建、到處運行,更快速的應用交付和部署,更便捷的升級和擴縮容,更簡單的系統運維,更高效的計算機資源利用。
在Docker中重要的概念
鏡像:Docker 鏡像(image)就是一個只讀的模板,鏡像可以用來創建 Docker 容器,一個鏡像可以創建很多容器。
容器:Docker 利用容器(Container)獨立運行的一個或一組應用,容器是用鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平臺。倉庫:倉庫(Repository)是集中存放鏡像文件的場所。倉庫(Repository)和倉庫注冊服務器(Registry)是有區別的,倉庫注冊服務器上往往存放著多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。倉庫分為公開倉庫(Public)和私有倉庫(Private)兩種形式,最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。國內的公開倉庫包括阿里云 、網易云等。
Docker怎么工作的?
????????Docker是一個Client-Server結構的系統,Docker守護進程運行在主機上, 然后通過Socket連接從客戶端訪問,守護進程從客戶端接受命令并管理運行在主機上的容器。容器,是一個運行時環境,就是我們前面說到的集裝箱。容器,是一個運行時環境,就是我們前面說到的集裝箱。
Docker鏡像是什么?
? ? ? ??首先我們要了解什么是UnionFS(聯合文件系統),UnionFS是一種分層、輕量級并且高性能的文件系統,它支持對文件系統的修改作為一次提交來一層層的疊加,同時可以將不同目錄掛載到同一個虛擬文件系統下。聯合加載會把各層文件系統疊加起來,這樣最終的文件系統會包含所有底層的文件和目錄。??????? Union 文件系統是 Docker 鏡像的基礎,鏡像可以通過分層來進行繼承,基于基礎鏡像(沒有父鏡像),可以制作各種具體的應用鏡像。為什Docker鏡像采用分層的結構?
????????最大的一個好處就是共享資源。比如:有多個鏡像都從相同的 base 鏡像構建而來,那么宿主機只需在磁盤上保存一份base鏡像,同時內存中也只需加載一份 base 鏡像,就可以為所有容器服務了。而且鏡像的每一層都可以被共享。
小結
? ? ?Docker 本身是一個容器運行載體或稱之為管理引擎。我們把應用程序和配置依賴打包好形成一個可交付的運行環境,這個打包好的運行環境就似乎 image鏡像文件。只有通過這個鏡像文件才能生成 Docker 容器。image 文件可以看作是容器的模板,同一個 image 文件,可以生成多個同時運行的容器實例。
查看總結
以上是生活随笔為你收集整理的docker 不包含依赖 打包_Docker容器技术(概念篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 的源码管理器中有感叹图标_玄说前端面试层
- 下一篇: 新增字段赋值_微服务】155:商品新增业