【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.mzph.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;能帮助你…