dockerFile指令

dockerFile是用来构建镜像的文本文件,文本内容包含了构建镜像需要的各种指令,一个命令是就是镜像的一层

DockerFile的基本指令

  • FROM

镜像起始的基础镜像,后续命令的操作都是基于这个镜像来操作的
例子:
FROM java:8
以java8为基础镜像

  • RUN

在构建过程中在镜像中执行命令,在 docker build时执行
格式 1: RUN <命令行命令>
<命令行命令>等同于在linux 操作的shell命令
格式2:RUN [ “可执行文件”,“参数1”,“参数2”,“参数3”]

  • MAINTAINER

指定作者(已弃用,推荐LABEL)

  • LABEL

添加镜像的元数据,使用键值对的形式
LABEL <键>=<值> <键>=<值> <键>=<值> …
例子:
LABEL authors=“test01”

  • CMD

指定容器创建时的默认命令(可以被覆盖),在docker run 时运行,如果存在多个 CMD 指令,仅最后一个生效
格式 1:CMD <shell命令>
格式 2:[“<可执行文件或命令>”,“<参数一>”,“<参数二>”]
格式 3:[“<参数一>”,“<参数二>”,…] 这种写法是为ENTRYPOINT指令指定的程序提供默认参数

  • ENTRYPOINT

设置容器创建时的主要命令(不可被覆盖)。类似于CMD命令但其不会被docker run的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给ENTRYPOINT指令指定的程序。如果在docker run时使用了–entrypoint 选项,将覆盖ENTRYPOINT指令指定的程序
格式: ENTRYPOINT [“<执行程序>”,“<参数一>”,“<参数二>”,…]
//---------------------------------------------------------------
例子 1
nginx:test镜像的Dockerfile 中命令如下
FROM nginx
ENTRYPOINT [“nginx”, “-c”] # 定参
CMD [“/etc/nginx/nginx.conf”] # 变参

  1. 在控制台运行nginx的镜像(不带参数运行)
    docker run nginx:test
    容器内默认会运行如下命令,启动nginx (即CMD的参数传递给了ENTRYPOINT)
    nginx -c /etc/nginx/nginx.conf
  2. 在控制台运行nginx的镜像(带参数运行)
    docker run nginx:test -c /etc/nginx/new.conf
    容器内会默认运行一下命令,启动nginx(即接受命令行的参数)
    nginx -c /etc/nginx/new.conf
  • EXPOSE

声明容器运行时监听的特定网络端口,即申明容器内的端口,以方便映射,可以申明多个端口
格式: EXPOSE <端口>
例子: 如下同时申明两个端口
EXPOSE 80
EXPOSE 443

  • ENV

在容器内部设置环境变量
格式: ENV <键> <值>
例子:
ENV PARAM 89
RUN curl localhost:3390/get$PARAM $PARAM为获取之前定义的值

  • ADD

将文件、目录或远程URL复制到镜像中
与COPY的使用类似。同样需求,推荐使用COPY
优点:在执行《源文件》为tar压缩文件,压缩格式为gzip,bzip2,以及xz的情况下,会自动复制并解压到《目标路径》
缺点:在不解压的情况下,无法复制tar压缩文件。会另镜像构建缓存失效,从而惠玲镜像构建变得缓慢。

  • COPY

将文件或目录复制到镜像中
例子: COPY demo01.jar /home/test/demo01.jar
把本地当前文件夹中的demo01.jar 复制到镜像中的 /home/test目录中,容器中的目录不存在会自动创建

  • VOLUME

为容器穿件挂载点或声明卷
格式1:VOLUMN [“<路径一>”,“<路径二>”] #挂载多个
格式2:VOLUMN <路径一> #挂载单个
在启动容器时候没有用-v 参数挂载dockerfile中指定的数据卷,会自动挂载到匿名卷中

  • WORKDIR

设置后续指令的工作目录

  • USER

指定后续指令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)
格式:USER <用户名>[:<用户组>]

  • ARG

定义在构建过程中传递给构建器的变量,可使用"docker build"命令设置
格式: ARG <键> [=<值>]
与ENV作用一致。作用域不同,仅在dockerfile里面有效,当docker build执行完了就销毁了,构建好的容器内不会存在这个变量 。而且在docker build 时如果使用 --build-arg <参数名>=<值> ,会覆盖Dockerfile中的值

  • ONBUILD

当该镜像被用作另一个构建过程的基础时,添加触发器

  • STOPSIGNAL

设置发送给容器以退出的系统调用信号

  • HEALTHCHECK

定义周期性检查容器健康状态的命令。即用于指定某个程序或者指令来监控 docker 容器服务的运行状态
格式
HEALTHCHECK [选项] CMD <命令>:设置检查容器健康状况的命令
HEALTHCHECK NONE:如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令

HEALTHCHECK [选项] CMD <命令> : 这边 CMD 后面跟随的命令使用,可以参考 CMD 的用法。

  • SHELL

覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令

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

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

相关文章

如何使用多协议视频汇聚/视频安防系统EasyCVR搭建智慧园区视频管理平台?

智慧园区作为现代化城市发展的重要组成部分&#xff0c;不仅承载着产业升级的使命&#xff0c;更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化&#xff0c;将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…

如何制作有趣的gif?这个方法别错过

是否在社交媒体上看到过很多有趣好玩的gif动图&#xff0c;有的搞笑有趣有的又很可爱。大家有没有想过自己动手制作gif动画呢&#xff1f;接下来&#xff0c;就给大家分享一招gif在线制作&#xff08;https://www.gif5.net/&#xff09;的方法&#xff0c;超简单不需要下载任何…

什么牌子的洗地机质量最好?四款耐用高分产品推荐

洗地机具备了吸尘、擦拭、除菌等多种功能&#xff0c;可以一次完成多种清洁任务&#xff0c;帮助用户更高效地保持家居整洁&#xff0c;节省时间和精力&#xff0c;备受人们的喜爱。但是怎么挑选到优质的洗地机一直是大家关注的问题。今天&#xff0c;笔者将结合自己在家电行业…

什么是驱动数字签名?如何获取驱动数字签名?

Windows 驱动程序承载着计算机实现的各种内核和用户模式功能。如果驱动程序被黑客攻击&#xff0c;可能会产生很多问题。Windows通过数字签名来验证驱动程序包的完整性及发布者的身份。2020年10月的安全更新中&#xff0c;微软加强了对驱动软件的验证&#xff0c;如果Windows无…

【微积分听课笔记】全微分,二元极值,Double Integral

6.6 二元函数的极值_哔哩哔哩_bilibili 此笔记为听课笔记&#xff0c;宋浩老师微积分~ 最近诸事缠身&#xff0c;会有种会不会只做一件事好些。实际上&#xff0c;关键在于动力&#xff0c;我不可能每次都准备充分。动力&#xff0c;分配&#xff0c;这是目前进入大学我正在学…

【yolov8 项目打包】pyinstaller 打包pyQt5 界面为exe

创建一篇博客文章&#xff0c;介绍如何使用PyInstaller将PyQt5界面打包为exe文件&#xff0c;并且处理与YOLOv8模型相关的文件&#xff0c;可以按照以下结构进行&#xff1a; 标题&#xff1a;使用PyInstaller将PyQt5界面与YOLOv8模型打包为Windows可执行文件 引言 在机器学习…

vue视图不刷新强制更新数据this.$forceUpdate()

在vue中&#xff0c;更新视图数据&#xff0c;不刷新页面&#xff0c;需要强制更新数据才可以 前言 在对数据就行添加和删除时&#xff0c;发现页面视图不更新&#xff0c;排除发现需要强制更新才可以 点击添加或删除&#xff0c;新增数据和删除就行&#xff0c;但在不使用fo…

如何vscode中刷力扣

推荐你阅读 互联网大厂万字专题总结 Redis总结 JUC总结 操作系统总结 JVM总结 Mysql总结 微服务总结 互联网大厂常考知识点 什么是系统调用 CPU底层锁指令有哪些 AQS与ReentrantLock原理 旁路策略缓存一致性 Java通配符看这一篇就够 Java自限定泛型 技术分享 如何vscode中刷力扣…

视频号小店想要长久发展,做店的核心是什么?一篇详解!

大家好&#xff0c;我是电商小V 想要做好视频号小店&#xff0c;那么他的核心是什么呢&#xff1f; 视频号小店的核心还是商品&#xff0c;其实电商运营底层的逻辑都是一样的&#xff0c;都是以商品为核心去运营的&#xff0c;再说的浮夸一点就是&#xff0c;你的商品选择的好&…

【实战】采用jenkins pipeline实现自动构建并部署至k8s

文章目录 前言部署jenkins编写docker-compose-jenkins.yaml配置maven源启动jenkins解锁jenkins Jenkins默认插件及git、镜像仓库、k8s凭证配置host key verification configuration修改为不验证Gitee ssh阿里云镜像仓库ssh编写pipeline安装以下常用插件将kubectl命令文件拷贝到…

System Verilog通过CORDIC算法迭代16次求sin和cos值

求5~85度的sin和cos值 其它角度和Verilog实现代码类似&#xff0c;查表、移位和加法器 define DIE 16 //迭代次数 define PIE 3.1415926 define MUL 100_000_000 //同比放大 initial begin int die; int x[17]; int y[17]; int z[17…

学习软考----数据库系统工程师25

关系规范化 1NF&#xff08;第一范式&#xff09; 2NF&#xff08;第二范式&#xff09; 3NF&#xff08;第三范式&#xff09; BCNF&#xff08;巴克斯范式&#xff09; 4NF&#xff08;第四范式&#xff09; 总结

排序算法(Java版)

目录 1、直接插入排序2、希尔排序3、直接选择排序4、堆排序5、冒泡排序6、快速排序6.1 递归实现6.2 非递归实现 7、归并排序7.1 递归实现7.2 非递归实现 8、性能分析 今天我们学习一种算法&#xff1a;排序算法&#xff08;本文的排序默认是从小到大顺序&#xff09;&#xff0…

深度学习常用优化算法笔记介绍,各种梯度下降法详细介绍

优化算法 mini-batch梯度下降法 当一个数据集其数据量非常大的时候&#xff0c;比如上百万上千万的数据集&#xff0c;如果采用普通的梯度下降法&#xff0c;那么运算速度会非常慢&#xff0c;因为如果使用梯度下降法在每一次迭代的时候&#xff0c;都需要将这整个上百万的数…

基于边缘智能网关的工业燃气管网监测应用

随着城市化和工业化的飞速发展&#xff0c;燃气的使用量和应用范围持续增加&#xff0c;燃气管网作为承载燃气输送的设施&#xff0c;安全问题至关重要。一旦燃气管网发生泄漏事故&#xff0c;极易引发起火、爆炸等&#xff0c;从而酿成人员伤亡及财产损失的恶性事故。 得益于物…

流量分析利器arkime的学习之路(三)---结合Suricata攻击检测

1、基础 Arkime安装部分参考《流量分析利器arkime的学习之路&#xff08;一&#xff09;—安装部署》 在此基础上安装suricata软件并配置。 2、安装suricata yum install suricate 可能依赖的文件包括libyaml&#xff0c;PyYAML&#xff0c;这些可能在之前安装arkime或者其他…

Vue接收后端POST、GET返回的zip文件流打开报异常

近期接到一个小任务是将内容导出为 Zip 文件流的行式给前端 Vue 供用户下载&#xff1b;过程中发现一个问题打开 zip 文件报异常&#xff0c;如下&#xff1a; 首先后端这块单独在服务端请求是落盘的文件是正常的&#xff1b;因此后端的这块的逻辑没有问题&#xff1b;但中间前…

微服务拆分

目录 前言&#xff1a; 逻辑视图架构风格 一、分层式架构风格 二、六边形架构 如何定义微服务架构 微服务的拆分 业务能力进行服务拆分 子域进行服务拆分 拆分的原则 单一职责 闭包原则 前言&#xff1a; 我们在软件开发的时候一直在谈论架构&#xff0c;那么什么是…

线程池复习

手写线程池 - C语言版 | 爱编程的大丙 (subingwen.cn) 1. 线程池原理 我们使用线程的时候就去创建一个线程&#xff0c;这样实现起来非常简便&#xff0c;但是就会有一个问题&#xff1a;如果并发的线程数量很多&#xff0c;并且每个线程都是执行一个时间很短的任务就结束了&…

8款好用的电脑监控软件分享丨好资源不私藏!

电脑已经成为我们日常生活和工作的重要工具。随之而来的是&#xff0c;电脑监控的需求也逐渐增加。为了帮助大家更好地管理和监控电脑使用情况&#xff0c;本文将为您推荐8款好用的电脑监控软件。这些软件功能强大&#xff0c;易于使用&#xff0c;适用于各种场景&#xff0c;让…