Docker Dockerfile

Dockerfile是一个包含用于组合映像的命令的文本文档。可以使用在命令行中调用任何命令。 Docker通过读取Dockerfile中的指令自动生成映像。

docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。

$ docker build -f /path/to/a/Dockerfile

Dockerfile文件说明

说明不区分大小写,但必须遵循建议使用大写字母的约定。

Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM

一个声明以字符开头则被视为注释。可以在Docker文件中使用RUNCMDFROMEXPOSEENV等指令。

在这里列出了一些常用的说明。

FROM

该指令用于设置后续指令的基本映像。有效的Dockerfile必须使用FROM作为其第一条指令。

FROM ubuntu

LABEL

可以为映像添加标签来组织项目的映像。需要使用LABEL指令设置映像的标签。

LABEL vendorl = "zyiz"

RUN

该指令用于执行当前映像的任何命令。

RUN /bin/bash -c 'source $HOME/.bashrc; echo $HOME'

CMD

这用于执行映像的应用程序。应该以下列形式总是使用CMD -

CMD ["executable", "param1", "param2"?]

这是使用CMD的首选方法。Dockerfile文件中只能有一个CMD。如果使用多个CMD,则只会执行最后一个CMD

COPY

该指令用于将来自源的新文件或目录复制到目的地的容器的文件系统。

COPY abc/ /xyz

规则

  • source路径必须在构建的上下文之内。无法使用COPY ../something /something,因为docker构建的第一步是将上下文目录(和子目录)发送到docker守护程序。

  • 如果source是目录,则会复制目录的全部内容,包括文件系统元数据。

WORKDIR

WORKDIR用于为Dockerfile中的RUNCMDCOPY指令设置工作目录。如果工作目录不存在,它默认将会创建。

我们可以在Dockerfile文件中多次使用WORKDIR


上一篇:Docker容器和映像

下一篇:Docker Java应用程序示例

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程