Dockerfile指令

一、注释

Dockerfile中注释的方式和shell脚本一致,是以#开头,后面跟着注释信息,如:# First Dockerfile

二、指令

Dockerfile中的指令是以大写的指令名开始,后面跟着指令参数,如:RUN apt-get install -y nginx

三、常用的指令

1.FROM指令
语法:FROM <image>或FROM <image>:<tag>
示例:
1.使用ubuntu14.04作为基础镜像
FROM ubuntu:14.04
注意事项:
必须是已经存在的镜像(基础镜像),必须是Dockerfile中第一条非注释指令。
2.MAINTAINER 指令
指定镜像的作者信息,包含镜像的所有者和联系信息
语法:MAINTAINER <name>
示例:
1.制定镜像的作者名和email地址
MAINTAINER dormancypress "dormancypress@outlook.com"
3.RUN指令
指定当前镜像中运行的命令
语法:
shell模式:RUN <command>
以/bin/sh -c command这种形式的shell来执行指令
示例:
RUN echo hello

exec模式:RUN ["executable","param1","param2"]
可以使用其他形式的shell来执行指令
示例:
RUN["/bin/bash","-c","echo hello"]
注意:RUN指令时在镜像构建过程中运行的指令。

4.EXPOSE指令
EXPOSE <port>[<port>...]
指定运行该镜像的容器使用的端口
可以一个或者多个端口,也可以在一个Dockerfile中使用多个EXPOSE指令,虽然在镜像构建时指定了暴露的端口号,在容器运行时,仍然需要手动的指定容器的端口映射。

5.CMD指令
语法:
CMD [“executable”,“param1”,“param2”](exec模式)
CMD command param1 param2(shell 模式)
CMD[“param1”,“param2”](作为ENTRYPOINT指令的默认参数)
注意:CMD指令用于指定容器运行时的默认行为,在docker run指定的启动命令会将Dockerfile中CMD的命令覆盖。

6.ENTRYPOINT 指令
ENTRYPOINT [“executable”,“param1",“param2”](exec模式)
ENTRYPOINT command param1 param2(shell 模式)
注意:ENTRYPOINT 指令和CMD指令很相似,区别在于在docker run指定的启动命令不会将Dockerfile中ENTRYPOINT 的命令覆盖。
7.ADD指令
复制文件指令
ADD<src>...<dest>
ADD["<src>..."<dest>"](适用于文件路径中有空格的情况)
示例:
ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz / 
8.COPY指令
复制文件指令
语法:
COPY <src>...<dest>
COPY [“<src>",“<dest>”](适用于文件路径中有空格的情况)
示例:
1.使用本地编写的网页替换nginx的默认页
COPY index.html /usr/share/nginx/html/
注意:ADD指令和COPY指令的区别:ADD包含类似tar的解压功能如果单纯复制文件,Docker推荐使用COPY

9.VOLUME指令
定义匿名卷
语法:
VOLUME	["<路径1>", "<路径2>"...]		
VOLUME	<路径>	
示例:VOLUME /data
10.WORKDIR 指令
在容器内部设置工作目录
语法:
WORKDIR <工作目录路径>	
示例:WORKDIR /path/to/workdir
11.ENV指令
设置环境变量
语法:
ENV	 <key> <value>		
ENV	<key1>=<value1>	<key2>=<value2>...
12.USER指令	
指定当前用户
语法:
USER <用户名>
示例:
USER user USER uid
USER user:group USER uid:gid
USER user:gid USER uid:group
13.ONBUILD指令
镜像触发器,当一个镜像被其他镜像作为基础镜像时执行,会在构建过程中插入指令
语法:
ONBUILD [INSTRUCTION]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值