DockerFile——指令介绍


前言

  Docker镜像可以通过 Dockerfile进行构建。Dockerfile 是一个包含创建镜像所有命令的文本文件,通过docker build命令实现对Dockerfile 的内容构建镜像,

一、指令介绍

1、FROM

用法:FROM <image>

  • FROM指定构建镜像的基础源镜像,如果本地没有指定的镜像,则会自动从 Docker 的公共库 pull 镜像下来。
  • FROM必须是 Dockerfile 中非注释行的第一个指令,即一个 Dockerfile 从FROM语句开始。
  • FROM可以在一个 Dockerfile 中出现多次,如果有需求在一个 Dockerfile 中创建多个镜像。
  • 如果FROM语句没有指定镜像标签,则默认使用latest标签。

2、LABEL用法

用法:LABEL <key>=<value> <key>=<value> <key>=<value> …
示例:
  LABEL maintainer=“test” author=“value”

3、RUN

Run支持两种格式:
shell 格式:RUN <命令>,就像直接在命令行中输入的命令一样
  RUN echo 'Hello, Docker! ’
exec 格式:RUN [“可执行文件”, “参数1”, “参数2”],这更像是函数调用中的格式。
  RUN [ “sh”, “-c”, “echo”, “$HOME” ]

镜像是分层的,每条RUN指令将在当前镜像基础上执行指定命令,并提交为新的镜像,后续的RUN都在之前RUN提交后的镜像为基础。
exec 格式会被解析为一个 JSON 数组,所以必须使用双引号而不是单引号。exec 方式不会调用一个命令shell,所以也就不会继承相应的变量,如:
RUN [ "echo", "$HOME" ] 这种方式无法输出HOME变量的,正确的方式应该是这样的 RUN [ "sh", "-c", "echo", "$HOME" ]

RUN产生的缓存在下一次构建的时候是不会失效的,可以使用–no-cache选项,即docker build --no-cache,如此便不会缓存。

4、CMD

CMD指令的格式和RUN相似,也是两种格式:
shell格式:CMD <命令>
  CMD echo $HOME
exec格式: CMD [“可执行文件”, “参数1”, “参数2”…]
  CMD [ “sh”, “-c”, “echo $HOME” ]

CMD在Dockerfile中只能使

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值