Dockerfile 配置

参考链接:https://docs.docker.com/engine/reference/builder/

  • 通过写好的Dockerfile可以自动构建Docker镜像。
  • Dockerfile中包含了构建一个镜像可能用到的所有命令。

具体示例参考:https://docs.docker.com/engine/reference/builder/#dockerfile-examples

命令

docker build -t <name:tag> -f /path/to/a/Dockerfile <context>

  • 创建镜像时需要Dockerfile和一个指定路径
  • 这个路径是一个明确指出的宿主局文件目录或者一个给定的URL(Git仓库地址)
  • 创建镜像时,会首先将指定的context发送给docker daemon。
  • 大部分情况,最好指定一个空目录,目录下只有Dockerfile即可(以及构建镜像 必须的文件)。
  • 可以在目录下创建 .dockerignore文件,忽略掉不需要传递的文件。

BuildKit

从18.09开始,Docker支持一种新的方式构建镜像,即moby/buildkit

使用这种方式,需要首先设置环境变量: DOCKER_BUILDKIT=1,之后再进行构建。

格式

# Comment

INSTRUCTION arguments

其中 INSTRUCTION是大小写不敏感的,不过约定为大写,以更好的和参数进行区分。

parser directives: 可选,如果有,则在最前边,支持syntax,escape

FROM 开头。

 环境变量ENV

支持 $variable_name或者${variable_name}

${variable:-word}  如果参数设置了值,则为给定的值,否则参数的值为word

${variable:+word} 如果参数设置了值,则参数值为word,否则为空。

支持变量的命令如下: ADD,COPY,ENV,EXPOSE,FROM,LABEL,STOPSIGNAL,USER,VOLUME,WORKDIR,ONBUILD

FROM

FROM [--platform=<platform>] <image>[:<tag>] [AS <name>]

只有ARG指令可能出现在FROM之前,可以出现多次,每次代表初始化一次新的stage。

RUN

RUN <command>

RUN ["executable","param1","param2"]

CMD

  • CMD ["executable","param1","param2"] (exec form, this is the preferred form)
  • CMD ["param1","param2"] (as default parameters to ENTRYPOINT)
  • CMD command param1 param2 (shell form)
  • 一般每个Dockerfile只有一个CMD,如果有多个,只有最后一个有效。必须用双引号。

 LABEL

LABEL <key>=<value> <key>=<value> ...

MAINTAINER 废弃之后的代替方法    --->>>  maintainer="SvenDowideit@home.org.au"

EXPOSE

EXPOSE  <port> [<port>/<protocol> ...]

暴露端口,可以在run镜像的时候通过 -p 覆盖。

ADD

ADD [--chown=<user>:<group>] <src>... <dest>

ADD [--chown=<user>:<group>] ["<src>",..."<dest>"]

COPY

COPY [--chown=<user>:<group>] <src>... <dest>

COPY [--chown=<user>:<group>] ["<src>",..."<dest>"]

 ENTRYPOINT

ENTRYPOINT ["executable", "param1", "param2"]

ENTRYPOINT command param1 param2

VOLUME

VOLUME ["/data"]    创建一个挂载点

USER

USER <user>[:<group>]

USER <UID>[:<GID]

 WORKDIR

WORKDIR /path/to/workdir   可以出现多次,如果是相对路径,则在上一个workdir的基础上创建。

 ARG

ARG <name>[=<default value>]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值