📜  Docker DockerFile

📅  最后修改于: 2020-12-31 14:32:15             🧑  作者: Mango

Docker Dockerfile

Dockerfile是一个文本文档,其中包含用于组装映像的命令。我们可以使用在命令行上调用的任何命令。 Docker通过阅读Dockerfile中的指令自动构建映像。

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

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

Dockerfile说明

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

Docker以自上而下的顺序运行Dockerfile的指令。第一条指令必须是FROM ,以便指定基本映像。

以#开头的语句被视为注释。您可以在Dockerfile中使用RUN,CMD,FROM,EXPOSE,ENV等指令。

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

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

例如

FROM ubuntu

标签

我们可以在图像上添加标签以组织项目的图像。我们需要使用LABEL指令为图像设置标签。

例如

LABEL vendorl = "JavaTpoint" 

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

例如

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

CMD

这用于通过映像执行应用程序。我们应该始终以以下形式使用CMD

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

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

复制

该指令用于将新文件或目录从源复制到目标位置的容器的文件系统。

例如

COPY abc/ /xyz

规则

  • 源路径必须在构建上下文内。我们无法复制../something / something,因为Docker构建的第一步是将上下文目录(和子目录)发送到docker守护程序。
  • 如果source是目录,则将复制目录的整个内容,包括文件系统元数据。

工作目录

WORKDIR用于为Dockerfile中跟随它的任何RUN,CMD和COPY指令设置工作目录。如果工作目录不存在,则默认情况下将创建它。

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

例如

WORKDIR /var/www/html