语法和c区别_dockerfile语法
上次写了关于Dockerfile镜像精简之道之后,很多小伙伴找我问,dockerfile语法的一些东西,这边文章就介绍一下dockerfile语法吧
FROM
FROM是位于我们dockerfile命令的第一层,首先就会使用该命令。当然一个DokcerFile中存在多个镜像时,可以多次使用FROM命令
语法:
FROM /FROM : //tag没有的话默认是latestFROM ubuntu
MAINTAINER
可以理解为作者信息和维护者信息
语法:
MAINTAINER dockeruser MAINTAINER dockeruser dockeruser@gmail.com
RUN
用来运行我们所需要的指令。该命令是构建容器时运行的命令以及提交命令行的结果,RUN命令是直接跟shell命令,在linux系统中默认 /bin/sh -C windows中默认是 cmd /S /C
语法:
RUN command RUN [“executable”,“param1”,“param2”] #函数调用 都一个参数类似可执行文件,后面是参数 使用exec 来执行的 总的来说命令较长可以使用 来换行。RUN [“/bin/bash”, “-c”, “echo hello”]。RUN apt-get update && apt-get install -y x11vnc xvfb firefox
CMD
CMD是启动容器时默认执行的命令。启动容器需要执行的参数,并且一个DockerFile文件中最好只有一个该命令参数。多个话会把最后一个作为最终的目标,参数执行与RUN 运行类似。引号要使用是双引号,原因是参数传递后docker用来解析为一个json array
1. CMD ["executable","param1","param2"]2. CMD ["param1","param2"]3. CMD command param1 param2
LABEL
构建生成的镜像的元数据标签,一个容器可以有多个LABEL文件。
例子参考:
LABEL multi.label1="value1" multi.label2="value2" other="value3"
EXPOSE
声明镜像内服务所需要监听的端口。暴露给外部使用。但是在使用的时候还需要加上-P 参数映射或者使用-p映射为指定端口
EXPOSE 22 EXPOSE 22 8080 9292
ENV
功能为设置环境变量,可以让其他命令来使用此参数。并且还有使用docker inspect 查看这个环境变量值。
语法 :
1. ENV 2. ENV = ...ENV JAVA_HOME /path/java/src
在使用的时候就可以使用
ADD
复制命令,将文件复制到镜像中去,
语法:
1. ADD ... 2. ADD ["",... ""]
其中 src 可以使本地文件也可以是压缩文件还可以是url ,dest 是容器内部的绝对路径,也可以是相对于工作目录的相对路径。
ADD test relativeDir/ ADD test /relativeDirADD http://example.com/foobar /
如果是一个文件夹了,复制整个目录的内容,包括文件系统元数据
COPY
也是复制命令,不过该命令只能复制本地文件。
1. COPY ... 2. COPY ["",... ""]
ENTRYPOINT
用来指定镜像的默认入口,也是启动的默认命令。
语法:
1. ENTRYPOINT ["executable", "param1", "param2"]2. ENTRYPOINT command param1 param2
从命令来看与我们的CMD命令十分的相似,但是他们两者有不同的区别。
首先ENTRYPOINT不会被运行的command命令覆盖,CMD指定的命令会被覆盖
如果两者同时存在,当CMD命令不是一个完整的执行命令时,那么CMD的命令参数会被作为ENTRYPOINT的参数,只一个完整的命令时,谁在最后谁执行。
VOLUME
创建数据卷的挂载点,将容器内的文件或者其他容器中的文件挂载在该容器中。
语法:
VOLUME ["目录"]1. VOLUME ["/home/log/"]2. VOLUME /home/log3. VOLUME /home/log /home/db
需要使用数据进行持久化需要该操作。容器使用的是AUFS文件系统。容器关闭的时候数据会丢失,那么数据持久化 就需要使用挂载点来操作。还有一点需要注意的是该命令创建的挂载点是无法指定主机上的目录,自动生成的。
USER
用来指定运行容器时的用户名或者UID
1. USER daemo2. USER UID
WORKDIR
用来配置工作目录,对RUN,CMD,ENTRYPOINT,COPY,ADD生效,如果目录不存在会创建,也可以设置多次。切换目录的操作相当于是Linux系统中的cd
WORKDIR /home/ruiqiWORKDIR dataRUN pwdpwd执行的结果是//home/ruiqi/data当然如果存在环境变量的值也可以 解析环境变量ENV PATH /pathWORKDIR $PATH/ruiqiRUN pwd pwd 的显示结果是/path/ruiqi
ARG
用来指定一些参数信息。当然该参数可以被 build时使用 --build-arg user =asdasda 指定参数
语法:
ARG name = valueARG user = fruiqiARG passwd =12313
ONBUILD
当该镜像作为其他镜像的基础镜像时,所设定的命令才会执行。
语法:
ONBUILD [INSTRUCTION]比如 ONBUILD RUN ls
STOPSIGNAL
容器退出的信号值,当容器退出的时候给系统发送什么样的指令
STOPSIGNAL signal
HEALTHCHECK
进行容器的健康检查。
语法有两种:
1. HEALTHCHECK [OPTIONS] CMD command2. HEALTHCHECK NONE
语法和c区别_dockerfile语法相关推荐
- MongoDB的查询语法和SQL的SELECT语法做对比
2019独角兽企业重金招聘Python工程师标准>>> 对 数据库的查询是相当频繁的,而且很多特殊的需求我们都可以通过SQL查询语句构造出来.那么我们平时习惯的SELECT语法实现的 ...
- 语法和c区别_史冠新 | 汉语语法单位辨正
教授点击上方"公众号"可以订阅哦 汉语语法单位辨正 作者:史冠新 青岛大学 国际教育学院教授 原文刊于<东方论坛>2020年第1期 摘要 句子的研究应该更加注重其动态性 ...
- 语法和c区别_【20200925】Python基本语法
介绍 介绍 Python这种脚本语言福哥已经给大家介绍过了,现在童鞋们应该已经会安装python的开发环境了,接下来我们需要针对python语言进行一个系统的学习. 首先学习一门编程语言最先要学习的是 ...
- html和css之间有什么区别,html语法和css语法之间有什么区别
区别:HTML由围绕内容的标签组成,例" 内容 ":而CSS由一条或多条声明和选择器组成,每条声明由一个属性和一个值组成,例"div{font-size:12px;}&q ...
- R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库、将dplyr语法查询语句翻译为SQL查询语句
R语言构建仿真数据库(sqlite)并使用dplyr语法和SQL语法查询数据库.将dplyr语法查询语句翻译为SQL查询语句 目录
- python xpath语法-XPath语法和lxml模块(数据提取)
XPath语法和lxml模块 XPath lxml库 1.什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素 ...
- python xpath语法-Python爬虫之XPath语法和lxml库的用法
本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 安装 为什么要用这个库 ...
- JS语法和CSS语法的对比
JS的语法和CSS语法很像,也分为行内式.内部式和外部式 CSS和JS的行内式代码对比: <div style="color: red;" onclick="ale ...
- CSS语法和CSS优先级
语法 层叠样式表( Cascading Stylesheet ,简称CSS ), 其基本目标是让浏览器以指定的特性去绘制页面元素,比如颜色,定位,装饰.CSS的语法反映了这个目标,由下面两个部分构建: ...
最新文章
- items属性的combo_【内存消耗问题】DataGridViewComboboxColoumn关于Items属性和DataSource属性的性能开销问题...
- java 读取url https_如何获取URL链接是http还是https
- mysql的repeat()函数
- 机器学习从零开始-Kaggle数据用PurePython实战
- Windows Mobile 6.0下实现自绘多种状态按钮(Win32) 续
- 有限元笔记06-三维实体单元
- 智算中心新基建 浪潮首发智算中心操作系统
- Mycat_MySql更新数据库失败 --read-only
- android 快传 源码_最新安卓仿茄子快传APP源码包括服务端源码Android开发快传类项目源码全套...
- 携号转网全面启动后,新诈骗套路也跟上了!一招教你识别!
- annotationprocessor 提示找不到类_StackOverflow上87万访问量的问题:什么是“找不到符号”?...
- 【项目实施随笔】销售和采购信息的打印
- SPSS中介效应分析(Process和mediate插件)
- 豆丁网word文档下载方法集锦
- 分享一款代码生成工具,可自定义模板生成不同的代码
- 目标检测:损失函数之SmoothL1Loss
- Substance Painter 创建头发实验
- 【面试官一定会问的几题】视觉过关挑战赛 - 附源码
- 到底有几个鸿蒙OS? 谈谈我眼里的鸿蒙操作系统
- 如何选择适合你的兴趣爱好(五十九),芭蕾舞