Dockerfile指令

Dockerfile 全部指令及描述如下表:

指令

描述

语法

ARG

创建镜像过程中使用的变量,执行 docker build 时通过 build-arg 来为变量赋值,镜像编译成功后 ARG 指定变量就不存在

ARG[=]

FROM

所创建镜像的基础镜像,Dockerfile 的第一条指令必须是 FROM

FROM[AS ] 或者 FROM:[AS] 或者 FROM@[AS]

LABEL

所创建镜像的元数据标签,元数据标签可以辅助过滤出特定的镜像

LABEL==…

EXPOSE

镜像内部所监听的端口,EXPOSE 指令只起到声明作用,不会自动映射端口

EXPOSE [/…]

ENV

环境变量,在镜像生成的过程中会被 RUN 指令使用,而且在镜像启动过程中也会存在

ENV=…

ENTRYPOINT

镜像默认入口命令,会在启动容器时作为根命令执行,Dockerfile 只能有一个 ENTRYPOINT 指令

如果需要利用 exec 执行则这样编写 ENTRYPOINT[“executable”,“param1”,“param2”],如果需要在 shell 中执行,则需要这样编写 ENTRYPOINT command param11 param2

VOLUME

挂载数据卷

VOLUME["/data"]

USER

容器运行时的用户名或ID

USER daemon

WORKDIR

工作目录

WORKDIR /path/to/workdir

ONBUILD

创建子镜像时自动执行的操作指令

ONBUILD[INSTRUCTION]

STOPSIGNAL

容器退出信号

STOPSIGNAL signal

HEALTHCHECK

容器检查健康的方式

HEALTHCHECK[OPTIONS]CMD command

SHELL

指定shell类型

SHELL [“executable”,“parameters”]

RUN

运行指令

RUN

CMD

容器启动时执行的命令

CMD[“executable”,“param1”,“param2”]

ADD

添加内容到镜像

ADD

COPY

复制内容到镜像

COPY

二、创建镜像

编写 Dockerfile 文件之后,可以通过 docker [image] build 命令来创建镜像,语法命令如下:

docker build [OPTIONS] path | url | -

执行该命令后,docker 将会读取指定目录及其子目录下的 Dockerfile 文件,并将指定目录下所有数据作为上下文发送给 Docker 服务。Docker 服务在校验完 Dockerfile 文件格式后,将逐条执行文件中的命令,遇到 ADD、COPY、RUN 命令将会生成一层镜像。所有命令执行成功后,Docker 会返回镜像的唯一ID。

小提示1: 我们只需要将创建镜像所需要的文件放入 Dockerfile 中,不要将其他无关文件放入,因为上下文过大会导致创建镜像速度放缓,甚至失败。

小提示2: 如果使用的 Dockerfile 文件不再上下文路径中,可以使用 -f 参数来指定 Dockerfile 文件的路径。

小提示3: 如果要指定镜像标签,可以使用 -t 参数。

扩展: 更多 docker build 命令参数可查阅 docker 官网

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker学习笔记--镜像

    镜像是Docker三大核心概念中最重要的一个,Dokcer运行容器钱需要本地存在对应的镜像,如果不存在对应的镜像,Doker 会先从默认的镜像仓库下载(如果用户...

    喵叔
  • Docker 学习笔记--通过父镜像生成镜像

    一般情况下我们会通过已有镜像(父镜像)生成新的镜像,这个时候我们就需要使用到 FROM 命令。父镜像直接影响了生成新景象的大小和功能。我们可以把基础镜像或者普通...

    喵叔
  • Docker学习笔记--仓库

    仓库时几种存放镜像的地方,分为公共仓库和私有仓库。本节将讲解官方公共镜像市场、第三方镜像市场和搭建本地私有镜像仓库的方法。

    喵叔
  • Docker之 - 使用镜像和仓库

    上一篇文章中,我们学习了包括 docker run 在内的许多对容器进行操作的基本指令,那么在本节中,我们主要探讨 Docker 镜像的一些概念,比如什么是镜像...

    cxuan
  • Docker 曲径通幽

    早在第一篇介绍 Docker初次见面 中就对 Docker 的镜像有了说明和介绍,今天再详细的说一下。

    李郑
  • docker 入门-镜像(三)

    解释: 一般开头都是这四行,说明一下镜像版本、作者信息和基于什么镜像开始构建,其余的都是一行一行的指令,每个指令都是要大写,后面一定要有参数选项。指令从上往下执...

    benny
  • Docker 查看镜像

    happyJared
  • openshift-ImageStream

    ImageStream包含任意数量的由标签(tags)标识的Docker格式的容器镜像。它提供了关联镜像的单个虚拟视图,类似于镜像仓库,也许还包含以下镜像:

    用户1470379
  • Docker 学习笔记--通过父镜像生成镜像

    一般情况下我们会通过已有镜像(父镜像)生成新的镜像,这个时候我们就需要使用到 FROM 命令。父镜像直接影响了生成新景象的大小和功能。我们可以把基础镜像或者普通...

    喵叔
  • 腾讯云系统镜像和使用镜像创建云主机

    镜像:服务器调试好一台制作镜像,其他机器使用镜像安装,避免重复调试,快速上线下线机器。进入腾讯云的控制台,选择用于制作镜像的机器==>更多 ==> 选择机器 =...

    云加社区

扫码关注云+社区

领取腾讯云代金券