鏡像不僅包含應用本身,還包含應用運行所需要的環境、配置、系統函數庫。Docker會在運行鏡像時創建一個隔離環境,稱為容器

鏡像倉庫:存儲和管理鏡像的平臺,Docker官方維護了一個公共倉庫:Docker Hub。

image

常用命令

image

案例演示

數據卷

容器是隔離環境,容器內程序的文件、配置、運行時產生的容器都在容器內部,我們要讀寫容器內的文件非常不方便。因此,容器提供程序的運行環境,但是程序運行產生的數據、程序運行依賴的配置都應該與容器解耦,由此引出數據卷。數據卷(volume)是一個虛擬目錄,是容器內目錄與宿主機目錄之間映射的橋梁。

image

這樣以來,容器內的/etc/nginx/conf.d/usr/share/nginx/html目錄就與宿主機的/etc/nginx/usr/share/nginx/html目錄關聯起來,我們稱為掛載。此時,我們操作宿主機的/usr/share/nginx/html就是在操作容器內的/usr/share/nginx/html目錄。只要我們將靜態資源放入宿主機對應目錄,就可以被Nginx代理了。

數據卷常用命令

注意:容器與數據卷的掛載要在創建容器時配置,對于創建好的容器,是不能設置數據卷的。而且創建容器的過程中,數據卷會自動創建。案例演示

直接掛在本地文件或目錄

可以發現,數據卷的目錄結構較深,如果我們去操作數據卷目錄會不太方便。在很多情況下,我們會直接將容器目錄與宿主機指定目錄掛載。掛載語法與數據卷類似:

注意:本地目錄或文件必須以/.開頭,如果直接以名字開頭,會被識別為數據卷名而非本地目錄名。

鏡像后端程序員往往要構建自己的鏡像,必須先了解鏡像的結構

之前說過,鏡像之所以能讓我們快速跨操作系統部署應用而忽略其運行環境、配置,就是因為鏡像中包含了程序運行需要的系統函數庫、環境、配置、依賴。因此自定義鏡像本質就是依次準備好程序運行的基礎環境、依賴、應用本身、運行配置等文件,并且打包而成。所以鏡像就是一堆文件的集合。但需要注意的是,鏡像文件不是隨意堆放的,而是按照操作的步驟分層疊加而成,每一層形成的文件都會單獨打包并標記一個唯一id,稱為Layer(層)。這樣,如果我們構建時用到的某些層其他人已經制作過,就可以直接拷貝使用這些層,而不用重復制作。例如,第一步中需要的Linux運行環境,通用性就很強,所以Docker官方就制作了這樣的只包含Linux運行環境的鏡像。我們在制作鏡像時,就無需重復制作,直接使用Docker官方提供的CentOS或Ubuntu鏡像作為基礎鏡像。然后再搭建其它層即可,這樣逐層搭建,最終整個項目的鏡像結構如圖所示:

image

Dockerfile

由于制作鏡像的過程中,需要逐層處理和打包,比較復雜,所以Docker就提供了自動打包鏡像的功能。我們只需要將打包的過程,每一層要做的事情用固定的語法寫下來,交給Docker去執行即可。參考語法常用的語法如下:

網絡

一般一個項目往往要訪問很多中間件,如mysql,redis,如何讓容器之間能夠相互訪問?默認情況下,所有容器都是以bridge方式連接到Docker的一個虛擬網橋上,但是,容器的網絡IP其實是一個虛擬的IP,其值并不固定與某一個容器綁定,如果我們在開發時寫死某個IP,而在部署時很可能容器的IP會發生變化,連接會失敗。所以,我們必須借助于docker的網絡功能來解決這個問題

image

? 在自定義網絡中,可以給容器起多個別名,默認的別名是容器名本身
? 在同一個自定義網絡中的容器,可以通過別名互相訪問

DockerCompose

一般一個項目需要包含多個容器,手動每個部署非常麻煩,而Docker Compose就可以幫助我們實現多個相互關聯的Docker容器的快速部署。它允許用戶通過一個單獨的 docker-compose.yml 模板文件(YAML 格式)來定義一組相關聯的應用容器。幫助我們實現多個相互關聯的Docker容器的快速部署。

image

image

案例參考:

原文轉載自:https://mp.weixin.qq.com/s/t3Obk8qozFutKgG8d2mTiw

上一篇:

DeepSeek + Playwright 實戰:AI 自動生成高覆蓋率測試腳本

下一篇:

LangChain4j實戰-Java AI應用開源框架之LangChain4j和Spring AI
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費