【docker】--docker file編寫教程

文章目錄

    • 構建docker file 鏡像
    • 常用命令速查表
    • 一、基礎指令(指定鏡像和執行命令)
    • 二、構建上下文管理
    • 三、設置鏡像內部環境
    • 四、容器運行配置
    • 五、多階段構建(可選進階)

構建docker file 鏡像

# -f 指定dockerfile
# -t 鏡像名和tag
# .必不可少  根據上下文的目錄構建   dockerfile和相關文件必須在里面  比如ADD或者COPY的文件
docker build -f dockerdile -t image_name:tag .

常用命令速查表

類別命令
基礎鏡像FROM
構建命令RUN, CMD, ENTRYPOINT
文件操作COPY, ADD
配置環境ENV, ARG, WORKDIR, LABEL, USER
網絡存儲EXPOSE, VOLUME, HEALTHCHECK
多階段構建FROM ... AS, COPY --from=...

一、基礎指令(指定鏡像和執行命令)

命令作用說明
FROM指定基礎鏡像(必須是第一條)
RUN在鏡像構建時執行命令(如安裝軟件)
CMD容器啟動時默認執行的命令(可被 docker run 覆蓋)
ENTRYPOINT容器啟動時執行的命令(不易被覆蓋)

區別 CMD 和 ENTRYPOINT:

CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT ["nginx"]
  • CMD 可被覆蓋
  • ENTRYPOINT 更強制性,適合構建“專用容器”

二、構建上下文管理

命令作用說明
COPY將本地文件復制進鏡像(常用于源碼、配置)
ADD類似 COPY,但支持解壓 .tar 文件和 URL 下載(不推薦亂用)

示例:

COPY ./app /usr/src/app

三、設置鏡像內部環境

命令作用說明
WORKDIR設置工作目錄(后續命令的執行路徑)
ENV設置環境變量
ARG構建參數(只在構建時可用)
LABEL添加元數據(作者、描述等)

示例:

ENV LANG C.UTF-8
WORKDIR /app
ARG VERSION=1.0
LABEL maintainer="you@example.com"

四、容器運行配置

命令作用說明
EXPOSE聲明容器運行時監聽的端口(不會自動映射
VOLUME聲明掛載點(用于數據持久化)
USER指定運行容器時的用戶
HEALTHCHECK設置健康檢查命令
SHELL改變默認 shell,比如從 sh 切換成 bash

五、多階段構建(可選進階)

命令說明
AS配合 FROM 使用,用于多階段構建中的命名階段

示例:

FROM golang:1.20 AS builder
WORKDIR /app
COPY . .
RUN go build -o myappFROM alpine
COPY --from=builder /app/myapp /app/

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

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

相關文章

WeakAuras Lua Script <BiaoGe>

WeakAuras Lua Script <BiaoGe> 表格拍賣插件WA字符串 表格字符串代碼&#xff1a; !WA:2!S3xA3XXXrcoE2VH9l7ZFy)C969PvDpSrRgaeuhljFlUiiSWbxaqXDx(4RDd0vtulB0fMUQMhwMZJsAO5HenLnf1LPSUT4iBrjRzSepL(pS)e2bDdWp5)cBEvzLhrMvvnAkj7zWJeO7mJ8kYiJmYiImYF0b(XR)JR9JRD…

虛幻引擎5-Unreal Engine筆記之什么時候新建GameMode,什么時候新建關卡?

虛幻引擎5-Unreal Engine筆記之什么時候新建GameMode,什么時候新建關卡&#xff1f; code review! 參考筆記&#xff1a; 1.虛幻引擎5-Unreal Engine筆記之GameMode、關卡&#xff08;Level&#xff09; 和 關卡藍圖&#xff08;Level Blueprint&#xff09;的關系 2.虛幻引擎…

開源模型應用落地-模型上下文協議(MCP)-Resource Template-資源模板的使用邏輯(六)

一、前言 在數字化進程加速的今天,如何高效管理動態資源已成為開發者們的核心課題。Resource Template(資源模板)作為Model Context Protocol(MCP)中的關鍵機制,正通過參數化設計重新定義資源調用的邊界——它不僅是靜態數據的容器,更是動態上下文生成的引擎。與傳統的R…

uniapp小程序獲取手機設備安全距離

utils.js let systemInfo null;export const getSystemInfo () > {if (!systemInfo) {systemInfo uni.getSystemInfoSync();// 補充安全區域默認值systemInfo.safeAreaInsets systemInfo.safeAreaInsets || {top: 0,bottom: 0,left: 0,right: 0};// 確保statusBarHei…

【線下沙龍】NineData x Apache Doris x 阿里云聯合舉辦數據庫技術Meetup,5月24日深圳見!

5月24日下午&#xff0c;NineData 將聯合 Apache Doris、阿里云一起&#xff0c;在深圳舉辦數據庫技術Meetup。本次技術沙龍聚焦「數據實時分析」與「數據同步遷移」 兩大核心領域&#xff0c;針對企業數據戰略中的痛點&#xff0c;特邀行業資深技術大咖&#xff0c;結合多年技…

企業網站架構部署與優化 --web技術與nginx網站環境部署

一、Web 基礎 本節將介紹Web 基礎知識,包括域名的概念、DNS 原理、靜態網頁和動態網頁的 相關知識。 1、域名和DNS 1.1、域名的概念 網絡是基于TCP/IP 協議進行通信和連接的&#xff0c;每一臺主機都有一個唯一的標識(固定的IP 地址),用以區別在網絡上成千上萬個用戶和計算機。…

java實現poi-ooxml導出Excel的功能

文章目錄 1. 添加poi-ooxml依賴2. Excel導出工具類3.核心邏輯說明4.擴展建議5.HSSF、XSSF、SXSSF 的核心原則和場景建議&#xff0c;幫助你在不同需求下快速決策&#xff1a; 以下是一個基于 Apache POI 實現的簡單、通用的Java導出Excel工具類&#xff0c;代碼邏輯清晰且注釋詳…

Nginx端口telnet不通排查指南

nginx已經配置server及端口20002&#xff0c;telnet不通&#xff1a;telnet 127.0.0.1 20002 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused 一、檢查 systemctl status nginx.service nginx: [emerg] bind() to 0.0.0.0:20002 failed (13…

【RabbitMQ】消息丟失問題排查與解決

RabbitMQ 消息丟失是一個常見的問題&#xff0c;可能發生在消息的生產、傳輸、消費或 Broker 端等多個環節。消息丟失的常見原因及對應的解決方案&#xff1a; 一、消息丟失的常見原因 1. 生產端&#xff08;Producer&#xff09;原因 (1) 消息未持久化 原因&#xff1a;生產…

docker默認存儲遷移

在容器化場景下默認存儲路徑為&#xff08;/var/lib/docker&#xff09;大多數平臺根目錄不支持系統盤擴容&#xff0c;會有空間不足風險隱患&#xff0c;因未配置持久化存儲導致容器數據丟失。以遷移Docker存儲路徑至大容量/data目錄說明 一、停止容器 systemctl stop docke…

【Golang筆記02】函數、方法、泛型、接口學習筆記

Golang筆記02&#xff1a;函數、方法、泛型、接口學習筆記 一、進階學習 1.1、函數 go中的函數使用func關鍵字進行定義&#xff0c;go程序的入口函數叫做&#xff1a;main&#xff0c;并且必須是屬于main包里面。 1.1.1、定義函數 &#xff08;1&#xff09;普通函數 go中…

LLM筆記(九)KV緩存調研

KV 緩存 (Key-Value Cache) 技術詳解 KV 緩存&#xff08;Key-Value Cache&#xff09;是在 Transformer 模型&#xff08;尤其是 Decoder-Only 架構或 Encoder-Decoder 架構的 Decoder 部分&#xff09;進行自回歸 (auto-regressive) 推理生成序列時&#xff0c;一種至關重要…

【Boost搜索引擎】構建Boost站內搜索引擎實踐

目錄 1. 搜索引擎的相關宏觀原理 2. 正排索引 vs 倒排索引 - 搜索引擎具體原理 3. 編寫數據去標簽與數據清洗的模塊 Parser 去標簽 編寫parser 用boost枚舉文件名 解析html 提取title ?編輯 去標簽 構建URL 將解析內容寫入文件中 4. 編寫建立索引的模塊 Index 建…

LeetCode 熱題 100 1.兩數之和

目錄 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; 思路&#xff1a; 思路一暴力遍歷&#xff1a; 代碼&#xff1a; 暴力遍歷Java代碼&#xff1a; 題目&#xff1a; 題目描述&#xff1a; 題目鏈接&#xff1a; 1. 兩數之和 - 力扣&#xff08;LeetC…

基于LSTM-GARCH混合模型的黃金價格波動率預測:信用降級事件沖擊評估

摘要&#xff1a;本文構建多維度量化分析框架&#xff0c;對近期黃金市場波動進行技術解構。通過主權信用評級調整、地緣風險及宏觀經濟數據等公開信息源&#xff0c;運用統計學習模型解析市場驅動因素&#xff0c;避免主觀預判。文中所有技術分析均基于歷史數據回測&#xff0…

分布式與集群:概念、區別與協同

分布式與集群:概念、區別與協同 在分布式系統與云計算領域,分布式(Distributed)和集群(Cluster)是兩個高頻出現的核心概念。它們常被混淆,但本質上屬于不同維度的設計思想。本文將從定義、分類、實際應用及協同關系四個層面,結合 Dubbo、Git、Hadoop 等典型案例,系統…

Prometheus實戰教程:k8s平臺-Mysql監控案例

配置文件優化后的 Prometheus 自動發現 MySQL 實例的完整 YAML 文件。該配置包括&#xff1a; MySQL Exporter 部署&#xff1a;使用 ConfigMap 提供 MySQL 連接信息。Prometheus 自動發現&#xff1a;通過 Kubernetes 服務發現自動抓取 MySQL 實例。 1、mysql 配置文件 &…

基于區塊鏈技術的智能汽車診斷與性能分析

我是穿拖鞋的漢子&#xff0c;魔都中堅持長期主義的汽車電子工程師。 老規矩&#xff0c;分享一段喜歡的文字&#xff0c;避免自己成為高知識低文化的工程師&#xff1a; 鈍感力的“鈍”&#xff0c;不是木訥、遲鈍&#xff0c;而是直面困境的韌勁和耐力&#xff0c;是面對外界…

文字溢出省略號顯示

一、 單行文字溢出、省略號顯示 二、 多行文字溢出&#xff0c;省略號顯示 有較大的兼容性問題&#xff0c;適用于Webkit為內核的瀏覽器軟件&#xff0c;或者移動端的&#xff08;大部分也是webkit&#xff09; 此效果建議后端人員開發 三、圖片底側空白縫隙的修復技巧&#…

JavaScript 中使用 Elasticsearch 的正確方式,第一部分

作者&#xff1a;來自 Elastic Jeffrey Rengifo 講解如何用 JavaScript 創建一個可用于生產環境的 Elasticsearch 后端。 想獲得 Elastic 認證&#xff1f;看看下一期 Elasticsearch 工程師培訓什么時候開始吧&#xff01; Elasticsearch 擁有大量新功能&#xff0c;能幫助你…