手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

幫助中心 >  行業資訊 >  運維 >  什么是docker?這篇文章用通俗的語言告訴你

什么是docker?這篇文章用通俗的語言告訴你

2025-04-24 17:27:09 201

隨著家庭 NAS 的慢慢普及,越來越多的人擁有了自己的 NAS,就拿老宋來說,因為我工作中就接觸一些服務器、數據庫、docker 等等的東西,雖然不是說掌握,但是起碼了解這些個東西,但是要知道不是所有的人都知道這些名詞后面的含義,服務器這個相對好說,就是性能和穩定性更高的電腦主機,數據庫就想象成功能更加強大的 excel 表格,那么什么是 docker 呢,今天老宋就來和小伙伴們一起學習下docker,想通俗理解請直接移步第四、五部分。

 

一、docker 基本架構示意

 1.png

 

二、名詞解釋

Docker 是一個用于開發、部署和運行應用程序的開源平臺,下面是 Docker 中一些常見名詞的解釋:

 

1. Docker 引擎(Docker Engine)

Docker 引擎是 Docker 平臺的核心組件,它是一個客戶端 - 服務器應用程序,由守護進程(dockerd)、REST API 服務器和命令行界面(CLI)組成。守護進程負責管理容器、鏡像等資源,REST API 服務器允許其他程序與守護進程進行交互,而 CLI 則提供了用戶與 Docker 引擎交互的命令行工具。

 

2. 鏡像(Image)

Docker 鏡像是一個只讀的模板,它包含了運行應用程序所需的所有文件系統、代碼、運行時環境、庫和配置等。可以將鏡像看作是應用程序的快照,它可以用來創建 Docker 容器。鏡像可以從 Docker Hub 等鏡像倉庫中下載,也可以使用 Dockerfile 自行構建。

 

3. 容器(Container)

容器是鏡像的一個運行實例。當你啟動一個鏡像時,就會創建一個容器。容器是一個獨立的、隔離的環境,它可以在任何支持 Docker 的系統上運行,并且具有自己的文件系統、進程空間和網絡配置等。容器之間相互隔離,不會相互影響,這使得應用程序的部署和管理更加方便和安全。

 

4. Dockerfile

Dockerfile 是一個文本文件,它包含了一系列的指令和參數,用于描述如何構建 Docker 鏡像。通過編寫 Dockerfile,你可以定義鏡像的基礎操作系統、安裝軟件包、復制文件、設置環境變量等操作。使用 docker build 命令可以根據 Dockerfile 構建出一個新的鏡像。

 

5. 倉庫(Repository)

Docker 倉庫是用于存儲和分發 Docker 鏡像的地方。類似于代碼倉庫,鏡像倉庫可以包含多個鏡像,并且可以對鏡像進行版本管理。Docker Hub 是 Docker 官方提供的公共鏡像倉庫,你可以在上面找到各種類型的鏡像。此外,你也可以搭建自己的私有鏡像倉庫,用于存儲和管理公司或團隊內部的鏡像。

 

6. 標簽(Tag)

標簽是用于標識鏡像版本的一種方式。在 Docker 中,一個鏡像可以有多個標簽,通過標簽可以方便地區分不同版本的鏡像。例如,nginx:1.23.4 中的 1.23.4 就是一個標簽,它表示這是 Nginx 鏡像的 1.23.4 版本。

 

7. 卷(Volume)

卷是 Docker 中用于持久化數據的一種機制。由于容器是臨時的,當容器被刪除時,容器內的數據也會被刪除。而卷可以將容器內的數據存儲在宿主機上,這樣即使容器被刪除,數據也不會丟失。卷還可以在多個容器之間共享,方便數據的共享和管理。

 

8. 網絡(Network)

Docker 網絡用于實現容器之間以及容器與外部世界之間的通信。Docker 提供了多種網絡驅動,如橋接網絡、主機網絡、覆蓋網絡等。通過網絡,容器可以相互訪問,也可以訪問外部網絡資源。例如,你可以將一個 Web 應用容器和一個數據庫容器連接到同一個網絡中,使它們可以相互通信。

 

三、基本原理 

 

Docker 核心解決的問題是利用其自研的 libcontainer 來實現類似虛擬機(VM)的功能,從而利用盡可能少的硬件資源給用戶提供盡可能好的服務。與 VM 不同, libcontainer 并不是一套硬件虛擬化方法,而是操作系統級的虛擬化。這理解起來可能并不像 VM 那樣直觀,所以可以從 Docker 要解決的問題出發,看看它是怎么滿足用戶虛擬化需求的。

 

用戶需要考慮虛擬化方法,尤其是硬件虛擬化方法,需要借助其解決的問題主要是以下 4 個:

 

隔離性

每個用戶實例之間相互隔離, 互不影響。 硬件虛擬化方法的方案是 VM;libcontainer 的方案是容器,具體而言是 namespace。其中的 pid, net, ipc, mnt, uts 等將容器的進程, 網絡, 消息, 文件系統和主機隔離開。

 

可配額/可度量

每個用戶實例可以按需提供其計算資源,所使用的資源可以被計量。硬件虛擬化方法因為虛擬了 CPU 和內存,可以方便實現;libcontainer 則主要是利用 cgroups 來控制資源。cgroups 實現了對資源的配額和度量,提供了類似文件的接口。在 /cgroup 目錄下新建一個文件夾即可新建一個 group,在此文件夾中新建 task 文件,并將 pid 寫入該文件,即可實現對該進程的資源控制。

 

移動性

用戶的實例可以很方便地復制、移動和重建。硬件虛擬化方法通過 snapshot 和 image 來實現;Docker 主要通過 AUFS 實現。AUFS (AnotherUnionFS) 是一種聯合文件系統, 就是支持將不同目錄掛載到同一個虛擬文件系統下的文件系統。它具有節省存儲空間、快速部署、節省內存、升級方便、允許在不更改 base-image 的同時修改其目錄中的文件的特點。

 

安全性

這個討論范圍較大,這里強調是 host 主機的角度盡量保護容器。硬件虛擬化的方法因為虛擬化的水平比較高,用戶進程都是在 KVM 等虛擬機中運行的;然而對于 libcontainer, 其中運行的進程應當是事先靜態編譯完成的。用戶提供的參數也是通過 exec 系統調用提供給用戶進程。通常情況下容器中也沒有長進程存在。

 

四、通俗解釋 

上面說的那些是不是有點頭皮發麻了,別擔心,下面老宋用通俗的話解釋下 Docker 里的常見名詞:

 

1. Docker 引擎

可以把 Docker 引擎想象成一個大工廠的總調度室。這里有一群工作人員(守護進程)負責安排各種生產任務,比如組裝產品(創建容器)、存儲原料(管理鏡像)。同時,有一套通信系統(REST API 服務器)讓其他部門能和調度室溝通,下達生產指令。而工人們手里的操作手冊(命令行界面),能讓他們方便地按照要求完成工作。

 

2. 鏡像

鏡像就像是制作電腦主機的配件。這些個配件包含了制作電腦主機所需的所有信息,像主板、CPU、內存等配件(文件系統、代碼、運行環境等)的型號和數量,以及組裝步驟(配置)。有了這些配件,就能做出很多一樣的主機(容器)。

 

3. 容器

容器是用配件(鏡像)組裝出來的主機。每個主機都是獨立的個體,有自己的序列號、配置(獨立的文件系統、進程空間和網絡配置)。即使有一個主機壞了,也不會影響其他主機。

 

4. Dockerfile

Dockerfile 好比是一份組裝主機的操作說明書。它清楚地寫著要準備哪些配件、用什么工具、按照什么順序來組裝。只要照著這份說明書(使用 docker build 命令),就能準備好所有的配件(鏡像)。

 

5. 倉庫

倉庫就像一個大倉庫,專門用來存放各種配件(鏡像)。Docker Hub 是一個公共的大倉庫,大家都能去里面挑選自己需要的配件。而公司或團隊也可以建一個自己的小倉庫(私有鏡像倉庫),把自己獨立開發的配置存起來。

 

6. 標簽

標簽就像是貼在配件上的紙條,上面寫著這個配件是用來組裝哪種主機的,以及可以組裝成那個版本的主機。比如一個內存條上寫著“3200 DDR4 16GB 序列號***”,這就說明這個內存條只能用于支持 DDR4 的主板。

 

7. 卷

卷可以看作是主機的配件收納箱。因為主機(容器)可能會壞掉,但里面的 CPU、內存、主板等重要配件(數據)可以放在收納箱里保存起來。這樣即使主機沒了,配件還在,下次還能接著用。而且這個收納箱里的配件還能在不同的主機(容器)之間共享。

 

8. 網絡

網絡就像是主機之間的網線。通過網線,主機(容器)之間可以互相送蛋糕(傳輸數據),也能和外面的世界(外部網絡)做生意。不同的道路和通信方式(網絡驅動)適用于不同的情況。

 

五、總結 

如果你讀到這里,那么恭喜小伙伴,你應該對docker是什么有個概念了,其實和windows操作系統相比,docker可以理解成把某個應用程序封裝成一個鏡像,但是這個應用程序獨立于這個操作系統(獨立于操作系統運行、獨立于操作系統使用的網絡)所以說虛擬機是硬件級別的虛擬化(把1臺服務器虛擬成N臺服務器),而docker是軟件操作系統級別的(把1臺物理服務器的CPU獨立虛擬成N個CPU,N個內存、N個主板,這些個CPU、內存和主板可以獨立自主的任意拼裝),說到這里,不知道小伙伴對docker理解了沒有,如果你有更多關于docker的技術問題,歡迎登錄藍隊云官網搜索查看。

 

藍隊云是成立十五年的云計算及網絡安全服務商,提供域名注冊、云服務器、虛擬主機、對象存儲、SSL證書、漏洞掃描、安全運維、滲透測試、攻防演練、等保合規等專業的產品和服務,平臺注冊用戶已超過100000+,服務政企客戶60000+,云數據庫支持免費試用3個月,歡迎了解體驗。

 

 


提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: