Docker03-知識點整理

Docker03-知識點整理

文章目錄

  • Docker03-知識點整理
  • 1-參考網址
  • 2-知識整理
  • 2-思考題
    • 1-Docker image和Docker Native image有什么區別
      • 1. Docker Image(Docker 鏡像)
        • 定義
        • 特點
        • 構建和使用示例
      • 2. Docker Native Image(通常指 GraalVM Native Image 結合 Docker)
        • 定義
        • 特點
        • 構建和使用示例
      • 3. 兩者的主要區別

1-參考網址


2-知識整理

  • 1)-Docker image和Docker Native image區別->Native不依賴JVM等運行環境,是單獨的可執行文件,啟動更快!
  • 2)

2-思考題

1-Docker image和Docker Native image有什么區別

問題背景:我在kafka官網進行軟件下載的時候,Docker版本有2個可以下載的鏡像,地址:https://kafka.apache.org/downloads

1. Docker Image(Docker 鏡像)

定義

Docker 鏡像是一個只讀的模板,它包含了運行容器所需的一切,如代碼、運行時環境、系統工具、系統庫等。可以將其看作是一個軟件包,這個軟件包可以被部署到 Docker 環境中運行。

特點
  • 分層結構:Docker 鏡像采用分層存儲的方式構建,每一層都是一個文件系統的變更。這些層可以被多個鏡像共享,從而節省磁盤空間。例如,多個不同的鏡像可能都基于同一個基礎操作系統層。
  • 通用性:Docker 鏡像可以在任何支持 Docker 的環境中運行,具有良好的可移植性。只要目標環境安裝了 Docker 引擎,就可以拉取并運行鏡像。
  • 構建靈活性:可以通過編寫 Dockerfile 來定義鏡像的構建過程。Dockerfile 中包含了一系列的指令,如從基礎鏡像開始、安裝軟件包、復制文件等,通過執行這些指令可以構建出所需的鏡像。
構建和使用示例
# 使用官方的 Python 3.9 鏡像作為基礎
FROM python:3.9# 設置工作目錄
WORKDIR /app# 復制當前目錄下的所有文件到工作目錄
COPY . .# 安裝依賴
RUN pip install -r requirements.txt# 暴露端口
EXPOSE 8000# 定義容器啟動時執行的命令
CMD ["python", "app.py"]

使用 docker build 命令構建鏡像:

docker build -t my-python-app .

使用 docker run 命令運行容器:

docker run -p 8000:8000 my-python-app

2. Docker Native Image(通常指 GraalVM Native Image 結合 Docker)

定義

GraalVM Native Image 是 GraalVM 提供的一項技術,它可以將 Java 代碼編譯成獨立的可執行文件,這個可執行文件不依賴于 Java 虛擬機(JVM)。當將這種 Native Image 打包成 Docker 鏡像時,就形成了 Docker Native Image。

特點
  • 啟動速度快:由于 Native Image 不依賴于 JVM 的啟動過程,因此啟動速度比傳統的基于 JVM 的應用程序要快得多。對于需要快速啟動和響應的應用場景,如函數計算、微服務等,這是一個非常重要的優勢。
  • 內存占用小:Native Image 不需要加載 JVM 所需的大量資源,因此內存占用相對較小。這可以提高資源利用率,降低運營成本。
  • 構建復雜性:構建 Native Image 需要額外的工具和配置,相對傳統的 Docker 鏡像構建要復雜一些。需要使用 GraalVM 的工具鏈進行編譯,并且可能需要處理一些特定的依賴和配置問題。
構建和使用示例

首先,確保你已經安裝了 GraalVM 并配置好了環境變量。然后,在項目中添加 GraalVM Native Image 插件(以 Maven 項目為例):

<plugin><groupId>org.graalvm.buildtools</groupId><artifactId>native-maven-plugin</artifactId><version>0.9.22</version><executions><execution><id>build-native</id><goals><goal>compile-no-fork</goal></goals></execution></executions>
</plugin>

使用以下命令編譯 Native Image:

mvn package -Pnative

編寫 Dockerfile 來構建 Docker Native Image:

# 使用一個輕量級的基礎鏡像
FROM debian:buster-slim# 復制編譯好的 Native Image 到容器中
COPY target/my-native-app /app/my-native-app# 設置工作目錄
WORKDIR /app# 定義容器啟動時執行的命令
CMD ["./my-native-app"]

使用 docker build 命令構建鏡像:

docker build -t my-native-app .

使用 docker run 命令運行容器:

docker run my-native-app

3. 兩者的主要區別

  • 運行時依賴:Docker 鏡像可以基于各種運行時環境,如 JVM、Python 解釋器等;而 Docker Native Image 通常是不依賴于虛擬機或解釋器的獨立可執行文件。
  • 啟動性能:Docker Native Image 的啟動速度通常比傳統的 Docker 鏡像要快,因為它不需要啟動虛擬機或解釋器。
  • 內存占用:Docker Native Image 的內存占用相對較小,因為它不需要加載虛擬機或解釋器所需的大量資源。
  • 構建復雜度:Docker 鏡像的構建相對簡單,只需要編寫 Dockerfile 并執行 docker build 命令;而 Docker Native Image 的構建需要額外的工具和配置,相對復雜一些。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/920569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/920569.shtml
英文地址,請注明出處:http://en.pswp.cn/news/920569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

華為 eNSP 從入門到精通:企業級網絡仿真全攻略

一、eNSP 簡介華為 eNSP&#xff08;Enterprise Network Simulation Platform &#xff09;是面向企業網絡的虛擬化仿真平臺&#xff0c;其核心架構基于分布式虛擬化引擎和真實設備鏡像&#xff0c;具備以下技術亮點&#xff1a;高度仿真&#xff1a;可模擬華為 AR 路由器、x7 …

docker compose設置命令別名的方法

docker compose名字比較長&#xff0c;輸入比較費事&#xff0c;可以為它設置別名來簡化輸入。1、Linux編輯~/.bash_aliasesalias dcdocker-compse編輯~/.bashrc&#xff0c;確認其包含以下內容&#xff1a;if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi重新加載 ~/.bas…

【RAGFlow代碼詳解-10】文本處理和查詢處理

概述 文本處理和查詢處理系統將自然語言查詢轉換為與 RAGFlow 的文檔存儲后端配合使用的優化搜索表達式。該系統支持中英文文本處理&#xff0c;具有專門的標記化、術語加權和查詢增強技術。核心組件 FulltextQueryer 類 FulltextQueryer 類是查詢處理和文本分析的主要接口。它…

利用機器學習優化Backtrader策略原理與實踐

1. Backtrader框架概述 1.1 Backtrader簡介 Backtrader是一個功能強大且靈活的Python庫&#xff0c;專為量化交易策略的開發、測試和執行而設計。它提供了豐富的功能&#xff0c;包括數據獲取、策略開發、回測、優化和繪圖等。Backtrader的核心優勢在于其模塊化設計和高度可擴展…

CPTS-Pressed復現(XML-RPC)

該box主要是了解wordpress-XML-RPC 的使用 端口掃描只有80端口開啟 可以使用wpscan進行掃描發現bak文件得到憑證&#xff0c;嘗試登陸&#xff08;這里是將原密碼的2021修改為2022嘗試登陸&#xff0c;該主機發布時間為2022年&#xff09;發現有2FA&#xff0c;但是能夠濫用 xm…

【機器學習深度學習】Embedding 與 RAG:讓 AI 更“聰明”的秘密

目錄 前言 一、RAG 的兩大階段 1. 知識庫構建階段 2. 查詢檢索與生成階段 二、為什么 RAG 比單純大模型更靠譜&#xff1f; 四、Embedding 在 RAG 中的作用 五、Embedding 的優勢 六、Embedding 的挑戰 七、RAG 優勢與挑戰對比 八、應用場景舉例 總結 前言 在大模型…

python 轉偶數

目錄 python變量轉偶數 box轉偶數 python變量轉偶數 x1 int(x1) // 2 * 2 y1 int(y1) // 2 * 2 x2 int(x2) // 2 * 2 y2 int(y2) // 2 * 2 box轉偶數 def save_mp4(output_path,box_list,img_list,clip_start,clip_end):writer imageio.get_writer(output_path,fps30,c…

Linux - 中文顯示亂碼問題解決方法(編碼查看及轉換)- 學習/實踐

1.應用場景 主要用于Linux中文顯示亂碼問題解決(編碼查看及轉換&#xff09; 2.學習/操作 1.文檔閱讀 Linux中文顯示亂碼問題解決方法(編碼查看及轉換&#xff09; - 整合俠 - 博客園 截圖&#xff1a; 2.整理輸出 TBD 后續補充 ... 3.問題/補充 TBD 后續補充 ...…

網絡_協議

關鍵詞&#xff1a; OSI是Open System Interconnect的縮寫&#xff0c;意為開放式系統互聯。 RTT &#xff1a; Round-Trip time 往返時間 RTO&#xff1a;Retransmission Timeout超時重傳時間 MSL : OSI 七層模型和 TCP/IP 四層模型 OSI七層模型和TCP/IP五層模型&#…

vscode有的結構體不能補全,有的可以補全問題的解決.

定義了一個結構體,發現不能自動補全變量名稱.而另外一個結構體卻可以正常補全.經過研究發現是,新定義的結構體變量類型uint32_t,vscode認為其是錯誤類型導致的.暫時改為int型,后發現問題消失.可以正常補全了.由于工程使用cubeide生成,uint32_t定義在軟件安裝目錄,并沒有和項目文…

JavaScript 數組核心操作實戰:最值獲取與排序實現(從基礎到優化)

在JavaScript開發中&#xff0c;數組的“最值獲取”和“排序”是高頻需求。本文將基于你的原始代碼&#xff0c;系統解析數組最值獲取、升序/降序排序的實現邏輯&#xff0c;通過“問題分析→代碼優化→原理講解”的流程&#xff0c;幫助你掌握更靈活、高效的數組操作方法&…

driver.js實現前端頁面引導

1.安裝 npm install driver.js2.實現代碼示例 <template><div class"home-container"><!-- 頁面內容 --><LeftPanel id"guide-left-panel" /><button id"guide-file-upload">文件上傳</button><button i…

技術速遞|使用 AI 應用模板擴展創建一個 .NET AI 應用與自定義數據進行對話

在本快速入門中&#xff0c;你將學習如何使用 .NET AI 應用模板創建一個 .NET AI 應用&#xff0c;與自定義數據進行對話。該模板旨在簡化 .NET 構建 AI 應用的上手體驗&#xff0c;幫助你處理常見的設置任務和配置。 先決條件 .NET 9.0 SDK 以下任一 IDE&#xff08;可選&am…

使用Cloudflare的AI Gateway代理Google AI Studio

1、說明詳見&#xff1a;詳見&#xff1a;https://developers.cloudflare.com/ai-gateway/usage/providers/google-ai-studio在"Google AI Studio"創建"API key" 在"Cloudflare"創建"AI Gateway"、獲取"Account ID"2、在“G…

Scrapy 框架實戰:構建高效的快看漫畫分布式爬蟲

一、Scrapy框架概述 Scrapy是一個為了爬取網站數據&#xff0c;提取結構性數據而編寫的應用框架&#xff0c;它提供了強大的數據提取能力、靈活的擴展機制以及高效的異步處理性能。其核心架構包括&#xff1a; Engine&#xff1a;控制所有組件之間的數據流&#xff0c;當某個…

數據結構(C語言篇):(六)單鏈表算法題(下)

目錄 前言 一、鏈表的回文結構 二、相交鏈表 三、環形鏈表?編輯 四、環形鏈表II 總結 前言 本篇博客將繼續介紹單鏈表相關的算法題&#xff0c;包括了鏈表的回文結構、相交鏈表、環形鏈表等。現在就讓我們正式開始吧&#xff01; 一、鏈表的回文結構 題目鏈接&#xff1a…

【AI自動化】VSCode+Playwright+codegen+nodejs自動化腳本生成

VSCodePlaywrightnodejs&#xff0c;能完美實現UI自動化全流程腳本自動生成和回放&#xff0c;生成的腳本方便維護&#xff0c;回放執行快速&#xff1b; 概述 Playwright 是由Microsoft開發的一個開源的跨瀏覽器自動化測試庫&#xff0c;它支持Chromium、WebKit和Firefox瀏覽…

基于能量方法的納維-斯托克斯方程高階范數有界性理論推導-陳墨仙

寫在最前面&#xff0c;圈外人&#xff0c;沒有背書沒有教育郵箱&#xff0c;發不了預印本&#xff0c;我先發csdn。剛才首發沒復制完&#xff0c;抱歉&#xff0c;現在編輯下。基于能量方法的納維-斯托克斯方程高階范數有界性理論推導作者 陳墨仙郵件 2488888241qq.com摘要納維…

Labview邪修01:貪吃蛇

從博主很小的時候就在掌機上玩過這個貪吃蛇的小游戲&#xff0c;突然有一天心血來潮的想Labview是不是也可以編這個小游戲&#xff0c;回憶一下童年&#xff01;然后就又了下面的這個程序&#xff0c;執行結果如下圖所示。 基本功能&#xff1a; 1&#xff09;點擊開始按鈕&am…