Dockerfile 是用于创建 Docker 镜像的文本文件,它包含了一系列的指令和参数。每个指令都用于在镜像构建过程中执行某些操作。以下是一些基本的 Dockerfile 指令和概念的总结:
FROM:
指定基础镜像。所有的 Dockerfile 都必须以一个 FROM 指令开始。例如,FROM ubuntu:20.04 指定使用 Ubuntu 20.04 作为基础镜像。Dockerfile 可以包含多个 FROM 指令,每个 FROM 指令开始新的构建阶段。这可以帮助创建更小的镜像,因为你可以在一个阶段中构建应用,然后只将必要的文件复制到最终镜像中。
WORKDIR:
设置工作目录。用于为后续的 RUN, CMD, ENTRYPOINT, COPY 和 ADD 指令设置工作目录。
RUN:
执行命令。在构建镜像的过程中执行命令,并提交结果。例如,RUN apt-get update && apt-get install -y nginx。
CMD:
提供容器启动时的默认执行命令。如果 Docker 运行时没有指定其他命令,就会执行 CMD 指定的命令。
COPY:
从构建上下文复制文件到镜像中。例如,COPY . /app 会将当前目录中的所有文件复制到镜像的 /app 目录。
ADD:
类似于 COPY,但还可以用来自动解压缩压缩包文件,或者从 URL 中复制文件。
ENV:
设置环境变量。例如,ENV NODE_ENV production 设置环境变量 NODE_ENV 的值为 production。
EXPOSE:
声明容器在运行时监听的端口。例如,EXPOSE 80 表示容器将监听端口 80。
VOLUME:
创建一个可以从本地主机或其他容器挂载的挂载点。
USER:
指定运行容器时使用的用户名或 UID。
ARG:
定义构建时的变量。可以在构建时通过命令行传入值。
ENTRYPOINT:
配置容器启动时运行的命令。它允许将容器作为可执行文件。