Dockerfile 中有许多不同的指令,用于定义 Docker 镜像的构建过程。以下是一些常见的 Dockerfile 指令及其用法:

1. FROM:
   FROM ubuntu:latest

   指定基础镜像,后续的指令将基于该镜像进行构建。

2. WORKDIR:
   WORKDIR /app

   设置容器内的工作目录,后续的指令将在该目录中执行。

3. COPY:
   COPY . .

   复制本地文件或目录到容器中。第一个参数是本地路径,第二个参数是容器内目标路径。

4. RUN:
   RUN apt-get update && apt-get install -y python3

   在容器中执行命令。通常用于安装软件包、更新系统等。

5. EXPOSE:
   EXPOSE 80

   声明容器将在运行时监听的网络端口。这只是一个元数据,实际端口映射需要在 docker run 时指定。

6. ENV:
   ENV APP_NAME=myapp

   设置环境变量。这些变量可以在容器内使用,也可以在运行时通过 -e 选项进行覆盖。

7. CMD:
   CMD ["python3", "app.py"]

   定义容器启动时默认执行的命令。可以提供默认的应用程序启动命令。

8. ENTRYPOINT:
   ENTRYPOINT ["echo", "Hello"]

   指定容器启动时执行的命令。与 CMD 不同,ENTRYPOINT 的参数不会被覆盖。

9. VOLUME:
   VOLUME /data

   创建一个挂载点,用于在容器和宿主机之间共享数据。

10. USER:
    USER nonroot

    指定运行容器时的用户名或 UID。用于指定执行命令的用户身份。

11. ARG:
    ARG version=latest

    定义构建时的参数,可以在 docker build 时传递。

12. ONBUILD:
    ONBUILD COPY . /app

    定义一个触发器,在构建镜像时会执行。这个指令通常用于创建可重用的基础镜像。

这只是 Dockerfile 中一些常见指令的简要介绍。根据具体需求,可能会使用更多的指令来配置容器的构建过程。文档中有更详细的指令列表和用法说明:[Dockerfile Reference](https://docs.docker.com/engine/reference/builder/)。


转载请注明出处:http://www.zyzy.cn/article/detail/10046/Docker