【Docker】 08-Dockerfile

news/2024/7/4 21:24:48/文章来源:https://blog.csdn.net/piano_diano/article/details/132652073

在这里插入图片描述

什么是Dockerfile

Dockerfile可以认为是Docker镜像的描述文件,是由一系列命令和参数构成的教程,主要作用是用来构建docker镜像的构建文件。

Dockerfile解析过程

在这里插入图片描述

Dockerfile的保留命令

保留字作用
FROM当前镜像是基于哪个镜像的 第一个指令必须是FROM
MAINTAINER镜像维护者的姓名和邮箱地址
RUN构建镜像时需要运行的指令
EXPOSE当前容器对外暴露出的端口号
WORKDIR指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
ENV用来在构建镜像过程中设置环境变量
ADD将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar包
COPY类似于ADD,拷贝文件和目录到镜像中
将从构建上下文目录中<原路径>的文件/目录复制到新的一层的镜像内的<目标路径>位置
VOLUME容器数据卷,用于数据保存和持久化工作
CMD指定一个容器启动时要运行的命令
Dockerfile中可以有多个CMD指令,但只有最后一个生效,CMD会被dockerrun之后的参数替换
ENTRYPOINT指定一个容器启动时要运行的命令
ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及其参数
FROM
  • 基于哪个镜像进行构建新的镜像,在构建时会自动从docker hub拉取base镜像,必须作为Dockerfile的第一个指令出现
  • 语法
    FROM <image>
    FROM <iamge>[:tag] 使用版本不写为latest
    FROM <iamge>[@<digest>] 使用摘要
MAINTAINER
  • 镜像维护者的姓名和邮箱地址[不推荐使用了]
  • 语法:
    MAINTAINER <name>
RUN
  • RUN指令将在当前映像之上的新层中执行任何命令并提交结果。生成的提交映像将用于Dockerfile中的下一步
  • 语法:
RUN <command> 
(shell form, thecommand is run in a shell, which by default is /bin/sh -c on Linux or cmd /S /C on Windows)RUN echo helloRUN ["executable","param1""param2"] (exec form)
RUN [" /bin/bash","-c""echo hello"]
EXPOSE
  • 用来指定构建的镜像在运行为容器时对外暴露的端口
  • 语法:
    EXPOSE 80/tcp 如果没有显示指定则默认暴露都是tcp
    EXPOSE 80/udp
WORKDIR
  • 用来为Dockerfile中的任何RUN、CMD、ENTRYPOINT、COPY和ADD指令设置工作目录。如果WORKDIR不存在,即使它没有在任何后续Dockerfile指令中使用,它也将被创建。
  • 语法:
WORKDIR /path/to/workdirWORKDIR /a
WORKDIR b
WORKDIR C
注意:WORKDIR指令可以在Dockerfile中多次使用。如果提供了相对路径,则该路径将与先前WORKDIR指令的路径相对
ENV
  • 用来为构建镜像设置环境变量。这个值将出现在构建阶段中所有后续指令的环境中。
  • 语法:
    ENV <key> <value>
    ENV <key>=<value>
ADD
  • 用来从context上下文复制新文件、目录或远程文件url,并将它们添加到位于指定路径的映像文件系统中。
  • 语法:
ADD hom* /mydir/            通配符添加多个文件
ADD hom?.txt /mydir/        通配符添加
ADD test.txt relativeDir/   可以指定相对路径
ADD test.txt /absoluteDir/  也可以指定绝对路径
ADD url
COPY
  • 用来将context目录中指定文件复制到镜像的指定目录中
  • 语法:
COPY src dest
COPY ["<src>",.... "<dest>"]
VOLUME
  • 用来定义容器运行时可以挂载在宿主机的目录。如果不指定,则任何目录都不能挂载成功。
  • 语法:
    VOLUME
CMD
  • 用来为启动的容器指定执行的命令,在Dockerfile中只能有一条CMD指令。如果列出多个命令,则只有最后一个命令才会生效。
  • 注意:Dockerfile中只能有一条CMD指令。如果列出多个命令,则只有最后一个命令才会生效。
  • 语法:
    CMD ["executable","param1", "param2"] (exec form, this is the preferred form)
    CMD [ "param1","param2"] (as default parameters to ENTRYPOINT)
    CMD command param1 param2 (shell form)
  • 在启动容器的时候,可以在启动命令的后面追加指令,这样就可以覆盖CMD指令
    例如:
    docker run xxxx ls /
ENTRYPOINT
  • 用来指定容器启动时执行命令,和CMD类似
  • 语法:
    ENTRYPOINT ["executable""param1"" param2" ]
    ENTRYPOINT command param1 param2
  • ENTRYPOINT指令,往往用于设置容器启动后的第一个命令,这对一个容器来说往往是固定的。CMD指令,往往用于设置容器启动的第一个命令的默认参数,这对一个容器来说可以是变化的

基于Dockerfile构建SpringBoot项目

1、准备好SpringBoot项目的jar包
2、把jar包上传到服务器
3、编写Dockerfile

FROM openjdk:8
WORKDIR /[目录名]
ADD xxx.jar /[目录名]
EXPOSE [项目端口号]
ENTRYPOINT ["java","-jar"]
CMD ["xxx.jar"]

4、构建镜像
docker buile -t xxx .
5、运行镜像
docker run -p [端口号]:[端口号] xxx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_166572.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序slot插槽的介绍,以及如何通过uniapp使用动态插槽

微信小程序文档 - slots介绍 由上述文档看俩来&#xff0c;微信小程序官方并没有提及动态插槽内容。 uniapp文档 - slots介绍 uni官方也未提及关于动态插槽的内容 在实际使用中&#xff0c;直接通过 <<slot :name"item.xxx" /> 这种形式会报错&#xff…

Python 操作 Excel

之前看过一篇文章&#xff0c;说一个工作多年的老员工&#xff0c;处理数据时只会用复制粘贴到 Excel &#xff0c;天天加班工作还完不成&#xff0c;后来公司就招了一个会 Python 的新人&#xff0c;结果分分钟就处理完成。所以工作中大家经常会使用 Excel 去处理以及展示数据…

缓存案例-架构真题(二十二)

试题一 某大型电商平台建立一个B2B商店系统&#xff0c;并在全国建设了仓储中心。但是在运营过程中&#xff0c;发现很多跨仓储中心调货&#xff0c;延误运送。为此建立全国仓储系统&#xff0c;通过对订单的分析和挖掘&#xff0c;并通过大数据分析预测各类配置&#xff0c;降…

ApiPost7使用介绍 | HTTP Websocket

一、基本介绍 创建项目&#xff08;团队下面可以创建多个项目节点&#xff0c;每个项目可以创建多个接口&#xff09;&#xff1a; 参数描述库&#xff08;填写参数时自动填充描述&#xff09;&#xff1a; 新建环境&#xff08;前置URL、环境变量很有用&#xff09;&#x…

Vue生成多文件pdf准考证

这是渲染的数据 这是生成的pdf文件&#xff0c;直接可以打印 需要安装和npm依赖和引入封装的pdf.js文件 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdfpdf.js文件 import html2canvas from "html2canvas"; import jsPDF …

Python实现Word、Excel、PPT批量转为PDF

今天看见了一个有意思的脚本Python批量实现Word、EXCLE、PPT转PDF文件。 因为我平时word用的比较的多&#xff0c;所以深有体会&#xff0c;具体怎么实现的我们就不讨论了&#xff0c;因为这个去学了也没什么提升&#xff0c;不然也不会当作脚本了。这里我将其放入了pyzjr库中…

ModaHub魔搭社区专访百度智能云李莅:做 AI native 的向量数据库有哪些技术难点?

ModaHub魔搭社区&#xff1a;那这种传统的数据库加向量插件的方式和 AI native 的向量数据库两者之间的区别是什么&#xff1f;做 AI native 的向量数据库有哪些技术难点&#xff1f; 李莅&#xff1a;向量检索算法是向量领域最核心的技术挑战。目前&#xff0c;主流的算法是基…

如何用PS把roughness贴图转换成Smoothness,并放入Metallic贴图的a通道。

1&#xff1a;用PS打开Roughness贴图 2&#xff1a;选择反相&#xff0c;装换成Smoothness贴图 3&#xff1a;新建一个大小相等的psd文件&#xff0c;或者打开Metallic贴图 4&#xff1a;如果没有金属度贴图&#xff0c;就把新建的图画成纯黑色 5&#xff1a;选择图层蒙版->…

华为云 异构数据迁移

数据库和应用迁移 UGO&#xff08;Database and Application Migration UGO&#xff0c;以下简称为UGO&#xff09;是专注于异构数据库结构迁移的专业服务。可将源数据库中的DDL、DML和DCL一键自动转换为华为云GaussDB/RDS的SQL语法&#xff0c;通过数据库评估、对象迁移两大核…

【聚类】DBCAN聚类

OPTICS是基于DBSCAN改进的一种密度聚类算法&#xff0c;对参数不敏感。当需要用到基于密度的聚类算法时&#xff0c;可以作为DBSCAN的一种替代的优化方案&#xff0c;以实现更优的效果。 原理 基于密度的聚类算法&#xff08;1&#xff09;——DBSCAN详解_dbscan聚类_root-ca…

合并到pdf怎么合并?这个方法了解一下

在现代数字化时代&#xff0c;PDF(便携式文档格式)已成为最常用的文件格式之一。PDF文件的优点在于其跨平台兼容性和保持文档格式不变的能力。然而&#xff0c;在某些情况下&#xff0c;我们可能需要知道合并到pdf。无论是为了方便管理、共享或者其他目的&#xff0c;本文将介绍…

【ES6】require、export和import的用法

在JavaScript中&#xff0c;require、export和import是Node.js的模块系统中的关键字&#xff0c;用于处理模块间的依赖关系。 1、require&#xff1a;这是Node.js中引入模块的方法。当你需要使用其他模块提供的功能时&#xff0c;可以使用require关键字来引入该模块。例如&…

【Node.js】Node.js安装详细步骤和创建Express项目演示

Node.js是一个开源的、跨平台的JavaScript运行环境&#xff0c;用于在服务器端运行JavaScript代码。它提供了一个简单的API&#xff0c;可以用于开发各种网络和服务器应用程序。 以下是Node.js的安装和使用的详细步骤和代码示例&#xff1a; 1、下载Node.js 访问Node.js官方…

Linux gdb单步调试的原理

文章目录 一、demo演示二、原理分析参考资料 一、demo演示 .section .data message:.string "Hello, World!\n" len . - message.section .text .globl _start _start:# 调用 write() 函数输出 "Hello, World!"mov $1, %rax # 系统调用号为 1…

[unity]三角形顶点顺序

序 详见官方文档&#xff1a;Unity - Manual: Mesh data (unity3d.com) Topology&#xff1a;拓扑结构 翻译&#xff1a; 拓扑描述网格具有的面类型。 网格的拓扑定义了索引缓冲区的结构&#xff0c;索引缓冲区又描述了顶点位置如何组合成面。每种类型的拓扑都使用索引数组中…

新上线:爱校对的PDF校对工具,专为专业人士设计

在这个信息爆炸的时代&#xff0c;准确和专业的信息交流比以往任何时候都更为重要。专业人士&#xff0c;无论是律师、医生、研究人员还是企业高管&#xff0c;都依赖于高质量的PDF文档来进行准确无误的沟通。但是&#xff0c;校对这些文档常常是一个既耗时又容易出错的任务。这…

经管博士科研基础【19】齐次线性方程组

1. 线性方程组 2. 非线性方程组 非线性方程,就是因变量与自变量之间的关系不是线性的关系,这类方程很多,例如平方关系、对数关系、指数关系、三角函数关系等等。求解此类方程往往很难得到精确解,经常需要求近似解问题。相应的求近似解的方法也逐渐得到大家的重视。 3. 线…

Qt+C++自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本

程序示例精选 QtC自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC自建网页浏览器-Chrome blink最新内核基础上搭建-改进版…

【Windows 常用工具系列 11 -- 笔记本F5亮度调节关闭】

文章目录 笔记本 F 按键功能恢复 笔记本 F 按键功能恢复 使用笔记本在进行网页浏览时&#xff0c;本想使用F5刷新下网页&#xff0c;结果出现了亮度调节&#xff0c;如下图所示&#xff1a; 所以就在网上查询是否有解决这个问题的帖子&#xff0c;结果还真找到了&#xff1a;…

机器学习笔记之最优化理论与方法(六)无约束优化问题——最优性条件

机器学习笔记之最优化理论与方法——无约束优化问题[最优性条件] 引言无约束优化问题无约束优化问题最优解的定义 无约束优化问题的最优性条件无约束优化问题的充要条件无约束优化问题的必要条件无约束优化问题的充分条件 引言 本节将介绍无约束优化问题&#xff0c;主要介绍无…