docker基礎:dockerfile常用指令

来源:https://www.cnblogs.com/Rohn/archive/2020/07/14/13297079.html
-Advertisement-
Play Games

Dockerfile是一個文本文件,記錄了鏡像構建的所有步驟。 ...


blog:https://www.cnblogs.com/Rohn/

目錄

Dockerfile

Dockerfile是一個文本文件,記錄了鏡像構建的所有步驟。

Dockerfile常用指令如下:

# 指定base鏡像
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>

# 維護者信息
MAINTAINER <name>

# 構建鏡像時執行的命令
RUN <command>
RUN ["executable", "param1", "param2"]

# 將本地文件添加到容器中,tar類型文件會自動解壓(網路壓縮資源不會被解壓),可以訪問網路資源,類似wget
ADD <src>... <dest>
ADD ["<src>",... "<dest>"]  # 用於支持包含空格的路徑

# 將文件從build context複製文件到鏡像
COPY <src>... <dest>
COPY ["<src>",... "<dest>"]

# 構建容器後調用,也就是在容器啟動時才進行調用
CMD ["executable","param1","param2"] # 執行可執行文件,優先
CMD ["param1","param2"]  # 設置了ENTRYPOINT,則直接調用ENTRYPOINT添加參數
CMD command param1 param2  # 執行shell內部命令

# 配置容器,使其可執行化。配合CMD可省去"application",只使用參數
ENTRYPOINT ["executable", "param1", "param2"] # 可執行文件, 優先
ENTRYPOINT command param1 param2 # shell內部命令

# 為鏡像添加元數據
LABEL <key>=<value> <key>=<value> <key>=<value> ...

# 設置環境變數
ENV <key> <value>  # <key>之後的所有內容均會被視為其<value>的組成部分,因此,一次只能設置一個變數
ENV <key>=<value> ...  # 可以設置多個變數,每個變數為一個"<key>=<value>"的鍵值對,如果<key>中包含空格,可以使用\來進行轉義,也可以通過""來進行標示;另外,反斜線也可以用於續行

# 指定持久化目錄
VOLUME ["/path/to/dir"]

# 切換工作目錄
WORKDIR /path/to/workdir

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 場景 ASP.NET中新建Web網站並部署到IIS上(詳細圖文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199747 前面講過將ASP.NET的項目部署到本機的IIS上。 但是如果將其部署到伺服器上Window ...
  • // from https://stackoverflow.com/questions/35381238/how-to-use-custom-fonts-in-emgucv string text = "塗聚文(Geovin Du)"; // 下麵定義一個矩形區域 int rectWidth = t ...
  • 案例:修改預設線程個數 1.NameValueCollection System.Collections.Specialized.NameValueCollection collection = new System.Collections.Specialized.NameValueCollecti ...
  • 背景 習慣使用markdown的人應該都知道Typora這個神器,它非常簡潔高效。雖然博客園的線上markdown編輯器也不錯,但畢竟是網頁版,每次寫東西需要登錄系統-進後臺-找到文章-編輯-保存草稿。。。非常難受。。。 但是使用Typora來寫的話,文章圖片又是個問題,本地寫完粘貼到網站上,圖片全 ...
  • 一、Linux入門概述 1.1 概述 Linux內核最初由芬蘭人Linus Torvalds在赫爾辛基大學就讀時處於個人愛好編寫的。 Linux是一套免費使用且自由傳播的類Unix操作系統,是一個基於POSIX和Unix的多用戶、多任務、支持多線程和多CPU的操作系統。Linux能運行主要的Unix ...
  • 記一次winserver安裝jdk+tomcat 準備軟體: jdk-8u241-windows-x64 apache-tomcat-8.5.46-windows-x64 一、安裝java 1、安裝jdk-8u241-windows-x64.exe,一路next,直接預設安裝即可,也可選擇安裝在特定 ...
  • #include <Windows.h> #include <stdio.h> #include <tchar.h> #include <assert.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR ...
  • 這個最大路徑長度是為了方便程式編寫?還是說底層的文件系統就只能支持這麼長的路徑呢?本文為你揭開謎底 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...