dockerfile的书写语法

FROM
基于某个基础镜像定制自己的镜像
FROM <image> [AS <name>] 
FROM <image>[:<tag>] [AS <name>]  
FROM <image>[@<digest>] [AS <name>]
上面三种的任意一种形式都可以
RUN
RUN ["executable", "param1", "param2"]	  #excel格式
CMD
指定容器主进程的启动命令。在运行时可以指定新的命令来代替这个默认命令。
CMD ["executable","param1","param2"] (exec格式,一般推荐使用的格式)
CMD ["param1","param2"] (参数列表格式)
CMD command param1 param2 (shell格式)
MAINTAINER
设置镜像的维护者,而LABEL更加灵活,可以设置任何需要的元数据,并且可以轻松查看。要设置MAINTAINER信息可以使用LABEL进行设置:
LABEL maintainer="SvenDowideit@home.org.au"  或者 MAINTAINER <name>。
LABEL
添加元数据到镜像中,如果要使用包含有空格的元数据,可以给key-value加上引号。
EXPOSE
告诉Docker容器在运行时监听指定的网络端口,默认为TCP协议;仅仅是声明运行时容器打算使用什么端口,并不会自动在宿主进行端口映射。
EXPOSE <port> [<port>/<protocol>...]
ENV
将环境变量<key>设置为值<value>。这个值将在构建阶段中的所有后续指令环境中。
ENV <key> <value>
ENV <key>=<value> ...
COPY
复制文件
COPY <src>... <dest> 或者 COPY ["<src>", ... "<dest>"]
ADD
更高级的复制命令,在COPY的基础上增强了一些功能。比如源文件可以是一个URL,会自动下载,下载后的权限为600;如果时压缩包可以支持解压。
ENTRYPOINT
入口点,和RUN指令格式一样,分为exec格式和shell格式。
ENTRYPOINT的目的和CMD一样,都是指定了容器启动的参数。ENTRYPOINT在运行时也可以被替代,需要通过docker run的参数-entrypoint来指定。
如果指定了ENTRYPOINT指令,CMD就不再是直接运行了,而是将CMD的内容作为参数传递给ENTRYPOINT指令
ARG:构建参数
构建参数和ENV的效果一样,都是设置环境变量。不同的是,ARG所设置的构建环境的环境变量在将来容器运行时是不会存在的。
ARG <name>[=<defaul value>]
VOLUME
定义匿名卷
VOLUME ["/data"]
WORKDIR
指定工作目录,使用WORKDIR指令可以指定工作目录。
USER
指定当前用户。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值