docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的 linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面。docker近幾年的發展可謂一日千里,特別從是2023年隨著乙個基於lxc的高階容器引擎開源,到現在,其在linux和windows上都有了很好的支援,並且已經有很多公司將docker用於實際的生產環境部署當中。這篇文章將針對docker的基礎方面簡單介紹:
一. docker基礎介紹
可能很多朋友對docker還停留在聽說過,並沒有認真關注了解過,這裡簡單介紹下其基礎部分知識。如有不足,歡迎指正!
1. docker介紹
很多同學有乙個先入為主的概念,docker是乙個輕量級容器。所以這裡先普及一下,docker本身並不是乙個容器,而是乙個管理容器的引擎工具。它包含乙個服務端和客戶端,服務端是乙個管理著所有容器和檔案系統的服務程序,客戶端則是乙個服務端的控制器,用來控制docker的服務端程序。至於容器,主要指的是包含了一些特定應用的執行例項,既保證了當前應用的執行環境獨立,又能保證容器相互之間的獨立。
一款產品從開發到上線,從作業系統,到執行環境,再到應用配置。作為開發者,我們需要關心很多東西,這也是很多網際網路公司都不得不面對的問題,特別是各種版本的迭代之後,不同版本環境的相容,對運維人員都是考驗。docker之所以發展如此迅速,也是因為它對此給出了乙個標準化的解決方案。
docker提供了一套虛擬化和檔案系統的支援,可以讓專業人員自由組裝需要的執行環境到容器中,並提供容器執行時的隔離。就像乙個大型油輪,承載著乙個個貨櫃,每個貨櫃我們可以理解為我們的容器,這個容器中的內容完全由組裝人員自定義。
2. docker基礎概念
docker本身是乙個容器執行載體,乙個容器的執行,需要正確的理解倉儲,映象,和容器這幾個概念。 如上介紹,容器乙個執行例項,那麼當前例項是如何部署的,就明白的映象的意義了。映象就是乙個已經打包好的可交付的執行環境,當我們需要的時候,就可以通過docker客戶端建立乙個對應的執行例項,也就是我們的容器。至於倉儲,就是放了一堆映象的地方,我們可以把映象發布到倉儲中,需要的時候從倉儲中拉下來就可以了。
3. docker基礎使用
以web應為為例,我們開發完成之後,將應用打包成映象,發布到自己的倉儲伺服器或者直接上傳到伺服器中,伺服器拉取或者載入映象,設定對應的埠對映並啟動容器。如果我們存在多個web容器,也可以通過negix在前方負載**。在後邊我會通過乙個.net core站點做乙個簡單的示例。當然也有很多持續整合方案,比如**提交之後自動生成映象,部署,這裡就先不做介紹了。
二、docker與虛擬機器比較
作為一種輕量級的虛擬化方式,docker在執行應用上跟傳統的虛擬機器方式相比具有顯著優勢:
(本段摘自《docker技術入門與實戰》)
虛擬機器實現了硬體上的虛擬,而docker則實現了作業系統級別的虛擬。
Docker基礎 天池Docker入門
容器 container 容器是執行中的映象,他的實質是程序,通過docker ps可以檢視執行中的容器。倉庫 repository 首先我們需要登陸乙個伺服器docker registry,然後每個registry上可以包含多個repository,每個repository下可以多個tag相當於不...
Docker基礎入門(一)
docker容器 container 類似於乙個輕量級的沙箱子 因為docker是基於linux核心的虛擬技術,所以消耗資源十分少 docker利用容器來執行和隔離應用。容器是從映象建立的應用執行例項,可以將其啟動 開始 停止 刪除,而這些容器都是相互隔離 互不可見的。可以吧每個容器看作乙個簡易版的...
Docker入門基礎解析
docker是乙個把開發的應用程式自動部署到容器的開源引擎。具有以下特點 去除了管理程式的開銷,有很高的效能 加強了開發環境跟應用部署的生產環境的一致性 應用程式具備可移植性,易構建,易協作docker映象 映象是靜態的,容易被使用者互相分享的檔案 docker容器 基於映象啟動起來的,可以執行乙個...