Docker是什么?

      網友投稿 834 2025-04-07

      寫在前面:感覺這篇文章寫的很好,稍微加工下分享給大家!


      我們來探索docker 的神秘世界,從零到一掌握 docker 的基本原理與實踐操作。

      為了更好的理解 Docker 是什么,我們先來講個故事:

      我需要蓋一個房子,于是我搬石頭、砍木頭、畫圖紙、蓋房子。一頓操作,終于把這個房子蓋好了。

      結果,住了一段時間,心血來潮想搬到海邊去。這時候按以往的辦法,我只能去海邊,再次搬石頭、砍木頭、畫圖紙、蓋房子。

      煩惱之際,跑來一個魔法師教會我一種魔法。這種魔法可以把我蓋好的房子復制一份,做成「鏡像」,放在我的背包里。

      等我到了海邊,就用這個「鏡像」,復制一套房子,拎包入住。

      是不是很神奇?對應到我們的項目中來,房子就是項目本身,鏡像就是項目的復制,背包就是鏡像倉庫。

      如果要動態擴容,從倉庫中取出項目鏡像,隨便復制就可以了。Build?once,Run?anywhere!不用再關注版本、兼容、部署等問題,徹底解決了「上線即崩,無休止構建」的尷尬。

      虛擬機與容器

      開始之前,我們來做一些基礎知識的儲備:

      ①虛擬機:虛擬化硬件

      Docker是什么?

      虛擬機 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小時內刪除侵權內容。

      上一篇:RPA 實戰:讓小姐姐填滿你的硬盤(上)
      下一篇:怎么新建(怎么新建微信群)
      相關文章
      国产91成人精品亚洲精品| 亚洲日产乱码一二三区别| 亚洲精品人成网线在线播放va| 亚洲午夜电影在线观看高清| 亚洲视频一区网站| 亚洲视频一区二区在线观看| 色婷婷亚洲十月十月色天| 亚洲精品福利视频| 亚洲av无码乱码国产精品 | 成人午夜亚洲精品无码网站| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲日韩中文字幕无码一区| 亚洲日韩av无码中文| 亚洲乱妇熟女爽到高潮的片| 亚洲AV成人影视在线观看| 亚洲熟妇无码一区二区三区| 亚洲av无码有乱码在线观看| 精品亚洲成a人在线观看| 内射无码专区久久亚洲| 午夜亚洲乱码伦小说区69堂| 亚洲精品99久久久久中文字幕| 亚洲人成网站观看在线播放| 激情综合色五月丁香六月亚洲| 中文字幕亚洲专区| 久久九九亚洲精品| 亚洲激情在线视频| 亚洲国产片在线观看| 亚洲综合久久精品无码色欲| 亚洲av无码专区首页| 亚洲国产成人精品女人久久久 | 亚洲国产精品综合久久2007| 亚洲精品免费网站| 久久久亚洲精华液精华液精华液| 亚洲国产成人久久综合区| 亚洲一区二区三区偷拍女厕| 亚洲爆乳精品无码一区二区三区 | 亚洲毛片基地日韩毛片基地| 99亚偷拍自图区亚洲| 亚洲日韩在线中文字幕综合 | 亚洲jjzzjjzz在线播放| 亚洲hairy多毛pics大全|