Dockerfile 是一个文本文件,其基本结构由一系列指令组成,用于定义 Docker 镜像的构建过程。以下是 Dockerfile 的基本结构和一些常用的指令:

1. 基础镜像选择:
   FROM ubuntu:latest

   这个指令指定了基础镜像,后续的操作都将基于该镜像进行。通常选择官方或合适的基础镜像,并根据需要选择版本。

2. 工作目录设置:
   WORKDIR /app

   WORKDIR 指令用于设置容器内的工作目录,后续的操作都将在该目录中进行。如果目录不存在,将会被创建。

3. 复制文件到容器:
   COPY . .

   COPY 指令将当前目录中的文件复制到容器中。可以复制单个文件或整个目录。

4. 运行命令:
   RUN apt-get update && apt-get install -y python3

   RUN 指令用于在容器中执行命令,通常用于安装软件包、配置环境等。每个 RUN 指令都会在新的中间镜像层上执行。

5. 暴露端口:
   EXPOSE 80

   EXPOSE 指令声明容器将在运行时监听的网络端口,但并不会映射宿主机端口。仅仅是一个文档作用,实际端口映射需要在 docker run 时进行。

6. 环境变量设置:
   ENV APP_NAME=myapp

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

7. 启动命令:
   CMD ["python3", "app.py"]

   CMD 指令定义容器启动时默认执行的命令。如果在 docker run 时提供了其他命令,它们将覆盖 CMD。

Dockerfile 是按照从上到下的顺序执行的。通过组合这些指令,可以构建出用于运行应用程序的容器镜像。记住,Dockerfile 是一种声明性的配置文件,它描述了镜像是如何构建的,而不是运行时的状态。


转载请注明出处:http://www.pingtaimeng.com/article/detail/10045/Docker