Docker教程-简介
最近工作中需要頻繁使用到docker,趁著最近比較閑,就初步學習一下,并將學習內容記錄為博客,由于這部分知識對我來說也比較陌生,文中若有疏漏,歡迎評論指正。
簡介
本文主要包括Docker的介紹、應用場景、優勢以及基礎架構。Docker其實就是一個虛擬化技術,將應用程序和應用程序需要的依賴環境一起打包,讓部署無需擔心環境問題。
介紹
Docker是一個開源的應用容器引擎,基于Go語言并使用Apache2.0協議開源。它可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然后發布到任何流行的Linux機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口,且容器性能開銷極低。Docker自從17.03版本之后分為社區版(CE)和企業版(EE),對于個人使用社區版足夠了。
應用場景
- Web應用的自動化打包和發布。
- 自動化測試和持續集成和發布。
- 其他容器技術場景。
優勢
Docker是一個用于開發、交付和運行應用程序的開放平臺。Docker允許用戶將應用程序與基礎架構分開,從而可以快速交付軟件產品。借助Docker這一工具,用戶使用與管理應用程序相同的方式來管理基礎架構。通過利用Docker的方法來實現快速交付、測試和部署項目代碼,從而大大減少編碼和生產環境中運行代碼之間的延遲。
快速交付
Docker允許開發人員使用提供的應用程序或服務的本地容器在標準化環境中工作,從而縮短開發周期。它非常適合持續集成和持續交付的工作流程,主要有如下的示例場景。
- 開發者本地編碼,使用容器與右工作關系的開發者共享工作結果。
- 開發者使用Docker將應用程序推送到測試環境中,執行相關的測試工作。若有錯誤,可以在開發環境中進行修復,然后重新推送到測試環境。
- 開發者測試完成,將修補程序推送給生產環境,類似推送更新的鏡像一樣,非常方便。
響應式部署和擴展
Docker是基于容器的平臺,允許高度可移植的工作負載。Docker容器可以在開發中機器上、生產環境機器上、云主機上,只要有Linux環境,都可以部署運行。它的可移植和輕量的特點,允許開發者輕松完成動態管理的工作負擔,并根據需求,實時擴展或削減應用程序和服務。
同硬件多負載
Docker是輕量且高效的,它為基于虛擬機管理的方案提供了一種可行的、經濟的、高效的替代,可以充分利用計算資源。它適合于高密度的中小型部署,不太適合大型部署。
架構
Docker包括三個基本概念:
- 鏡像(Image),包含一整套完整的文件系統,如官方鏡像ubuntu:16.04就包含完整的Ubuntu16.04最小的root文件系統。
- 容器(Container),它與鏡像的關系類似面向對象中的對象和類,鏡像是靜態的一套定義,容器則是它運行時的實例,容器可以被創建、啟動、停止、刪除和暫停等等操作。
- 倉庫(Repository),它是一個代碼中心,存放鏡像。
Docker使用客戶端-服務器架構模式(即CS架構),使用遠程API來管理和創建Docker容器。示意圖如下,圖片來自網絡。
Docker客戶端(Client)通過命令行等工具與Docker主機(Host)中的Docker守護進程通信,Docker主機是一個執行Docker守護進程和容器的物理或者虛擬的機器。而Docker倉庫用來保存鏡像,Docker Hub提供龐大的鏡像集合供使用,通常,一個Docker倉庫包含多個倉庫,每個倉庫包含多個標簽,每個標簽對于一個具體的鏡像。一個倉庫會包含一個軟件不同版本的鏡像,標簽用于區分不同的版本,可以通過倉庫名:標簽名的方式制定鏡像,不指定則默認最新版本。
補充說明
本文主要介紹了Docker的一些基本知識和比較簡單的架構,具體Docker的安裝和使用會在下一篇博客中提到。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Docker教程-简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch-常用代码
- 下一篇: Docker教程-安装