怎么并線(三條電線怎么并線)
834
2025-04-07
寫在前面:感覺這篇文章寫的很好,稍微加工下分享給大家!
我們來探索docker 的神秘世界,從零到一掌握 docker 的基本原理與實踐操作。
為了更好的理解 Docker 是什么,我們先來講個故事:
我需要蓋一個房子,于是我搬石頭、砍木頭、畫圖紙、蓋房子。一頓操作,終于把這個房子蓋好了。
結果,住了一段時間,心血來潮想搬到海邊去。這時候按以往的辦法,我只能去海邊,再次搬石頭、砍木頭、畫圖紙、蓋房子。
煩惱之際,跑來一個魔法師教會我一種魔法。這種魔法可以把我蓋好的房子復制一份,做成「鏡像」,放在我的背包里。
等我到了海邊,就用這個「鏡像」,復制一套房子,拎包入住。
是不是很神奇?對應到我們的項目中來,房子就是項目本身,鏡像就是項目的復制,背包就是鏡像倉庫。
如果要動態擴容,從倉庫中取出項目鏡像,隨便復制就可以了。Build?once,Run?anywhere!不用再關注版本、兼容、部署等問題,徹底解決了「上線即崩,無休止構建」的尷尬。
虛擬機與容器
開始之前,我們來做一些基礎知識的儲備:
①虛擬機:虛擬化硬件
虛擬機 Virtual Machine 指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。在實體計算機中能夠完成的工作在虛擬機中都能夠實現。
在計算機中創建虛擬機時,需要將實體機的部分硬盤和內存容量作為虛擬機的硬盤和內存容量。
每個虛擬機都有獨立的 CMOS、硬盤和操作系統,可以像使用實體機一樣對虛擬機進行操作。在容器技術之前,業界的網紅是虛擬機。
虛擬機技術的代表,是 VMWare 和 OpenStack。
②容器:將操作系統層虛擬化,是一個標準的軟件單元
其特點如下:
隨處運行:容器可以將代碼與配置文件和相關依賴庫進行打包,從而確保在任何環境下的運行都是一致的。
高資源利用率:容器提供進程級的隔離,因此可以更加精細地設置 CPU 和內存的使用率,進而更好地利用服務器的計算資源。
快速擴展:每個容器都可作為單獨的進程予以運行,并且可以共享底層操作系統的系統資源,這樣一來可以加快容器的啟動和停止效率。
區別與聯系:
虛擬機雖然可以隔離出很多「子電腦」,但占用空間更大,啟動更慢。虛擬機軟件可能還要花錢,例如 VMWare。
容器技術不需要虛擬出整個操作系統,只需要虛擬一個小規模的環境,類似「沙箱」。
運行空間,虛擬機一般要幾 GB 到 幾十 GB 的空間,而容器只需要 MB 級甚至 KB 級。
我們來看一下對比數據:
虛擬機屬于虛擬化技術,而 Docker 這樣的容器技術,屬于輕量級的虛擬化。
與虛擬機相比,容器更輕量且速度更快,因為它利用了 Linux 底層操作系統在隔離的環境中運行。
虛擬機的 Hypervisor 創建了一個非常牢固的邊界,以防止應用程序突破它,而容器的邊界不那么強大。
認識 Docker
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Docker 技術的三大核心概念,分別是:
鏡像 Image
容器 Container
倉庫 Repository
Docker 輕量級的原因是什么?相信你也會有這樣的疑惑:為什么 Docker 啟動快?如何做到和宿主機共享內核?
當我們請求 Docker 運行容器時,Docker 會在計算機上設置一個資源隔離的環境。
然后將打包的應用程序和關聯的文件復制到 Namespace 內的文件系統中,此時環境的配置就完成了。之后 Docker 會執行我們預先指定的命令,運行應用程序。
鏡像不包含任何動態數據,其內容在構建之后也不會被改變。
核心概念
核心概念如下:
Build,Ship and Run(搭建、運輸、運行)。
Build?once,Run?anywhere(一次搭建,處處運行)。
Docker 本身并不是容器,它是創建容器的工具,是應用容器引擎。
Docker 三大核心概念,分別是:鏡像 Image,容器 Container、倉庫 Repository。
Docker 技術使用 Linux 內核和內核功能(例如 Cgroups 和 namespaces)來分隔進程,以便各進程相互獨立運行。
由于 Namespace 和 Cgroups 功能僅在 Linux 上可用,因此容器無法在其他操作系統上運行。那么 Docker 如何在 macOS 或 Windows 上運行?Docker 實際上使用了一個技巧,并在非 Linux 操作系統上安裝 Linux 虛擬機,然后在虛擬機內運行容器。
鏡像是一個可執行包,其包含運行應用程序所需的代碼、運行時、庫、環境變量和配置文件,容器是鏡像的運行時實例。
安裝 Docker
在這里先埋個伏筆,后續專欄中會提到。關注加分享、評論,謝謝?。?/p>
容器 Docker
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。