dockerfile详解

1. dockerfile文件中的关键字

FROM :导入包;Dockerfile 中的必备指令,同时也必须是第一条指令

RUN: 执行命令;每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。例如三条RUN指令,应该合并为一条。默认会是用 /bin/sh -c 的方式执行。参考https://www.runoob.com/docker/docker-dockerfile.html

CMD:CMD 在docker run 时运行;RUN 是在 docker build。如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。

ENTRYPOINT:命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。如果 Dockerfile 中如果存在多个 ENTRYPOINT 指令,仅最后一个生效。

COPY: COPY 源路径 目标路径 , 从上下文目录中复制文件或者目录到容器里指定路径。目标路径不存在,会自动创建。

ADD: 和COPY命令功能类似。在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

ENV:环境变量;例如ENV NODE_VERSION 7.2.0,在之后的任何地方可以引用这个变量$NODE_VERSION。

ARG: 与 ENV 作用域不一样。ARG 设置的环境变量仅 docker build 的过程中有效,构建好的镜像内不存在此环境变量。

EXPOSE:声明端口

VOLUME: 在启动容器时忘记挂载数据卷,会自动挂载到匿名卷

WORKDIR:用 WORKDIR 指定的工作目录,会在构建镜像的每一层中都存在。(WORKDIR 指定的工作目录,必须是提前创建好的)。docker build 构建镜像过程中的,每一个 RUN 命令都是新建的一层。只有通过 WORKDIR 创建的目录才会一直存在。

HEALTHCHECK:监控 docker 容器服务的运行状态

ONBUILD:延迟执行的命令,此次不执行

LABEL: 定义一些描述信息;LABEL maintainer="yangge@qf.com"; 查看LABEL定义的信息,可以用docker inspect命令。

MAINTAINER :维护人的信息;

USER:用于指定执行后续命令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)。

STOPSIGNAL: docker在1.9之后提供了此关键字。在docker stop的时候会给容器内PID为1的进程发送这个signal,通过--stop-signal可以设置自己需要的signal,主要的目的是为了让容器内的应用程序在接收到signal之后可以先做一些事情,实现容器的平滑退出,如果不做任何处理,容器将在一段时间之后强制退出,会造成业务的强制中断,这个时间默认是10s

 

2. 用docker build命令把当前目录下的东西打包成image镜像文件

docker build -t 仓库名/镜像名:tag .

--tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

关于docker build命令的更多配置,参考https://www.runoob.com/docker/docker-build-command.html

 

3. 文件.dockerignore

写一个 .dockerignore,该文件是用于剔除不需要作为上下文传递给 Docker 引擎的

而Dockerfile 的文件名,也并不要求必须为 Dockerfile,而且并不要求必须位于上下文目录中,
比如可以用 -f ../Dockerfile.qf 参数指定某个文件作为 Dockerfile。

-f :指定要使用的Dockerfile路径

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值