Dockerfile 是用于构建 Docker 镜像的脚本文件,它包含了一系列指令和参数,这些指令告诉 Docker 如何构建镜像。下面详细介绍 Dockerfile 的语法。
- FROM
FROM 指令用于指定基础镜像,例如:
FROM ubuntu:18.04
这个例子中,我们使用 Ubuntu 18.04 作为基础镜像。
- RUN
RUN 指令用于在容器内部执行命令或者操作系统命令。例如:
RUN apt-get update && apt-get install -y nginx
这个例子中,我们在容器内部运行了两个操作系统命令:更新 APT 软件包列表和安装 Nginx Web 服务器。
- COPY
COPY 指令用于将本地文件复制到容器内部。例如:
COPY app.py /app/
这个例子中,我们将本地目录中的 app.py 文件复制到容器内部的 /app/ 目录中。
- WORKDIR
WORKDIR 指令用于设置工作目录。例如:
WORKDIR /app/
这个例子中,我们设置了工作目录为 /app/ 目录。
- EXPOSE
EXPOSE 指令用于声明应用程序需要监听哪些端口号。例如:
EXPOSE 80/tcp
这个例子中,我们声明应用程序需要监听 80 端口。
- CMD
CMD 指令用于设置容器启动时的默认命令。例如:
CMD ["python", "/app/app.py"]
这个例子中,我们设置了容器启动时默认执行的命令为 python /app/app.py。
- ENTRYPOINT
ENTRYPOINT 指令用于设置容器启动时的入口点命令。例如:
ENTRYPOINT ["python"]
这个例子中,我们设置了容器启动时的入口点命令为 python。
- ENV
ENV 指令用于设置环境变量。例如:
ENV MY_NAME="John Doe"
这个例子中,我们设置了一个名为 MY_NAME 的环境变量,并将其值设为 “John Doe”。
以上是 Dockerfile 常用指令的语法介绍。需要注意的是,在编写 Dockerfile 时应该尽可能减小镜像大小,并确保镜像安全可靠。可以使用多阶段构建、删除不必要文件和目录、使用最小化基础镜像等方式来优化镜像构建过程。