语法:
FROM <image>
用于指定基础镜像,后续的操作都基于该镜像进行。比如:
FROM ubuntu:latest
表示使用 Ubuntu 的 latest 版本作为基础镜像。
-
MAINTAINER:指定维护者信息
语法:
MAINTAINER <name>
用于指定维护者信息。比如:
MAINTAINER John Smith <john.smith@example.com>
表示该镜像由 John Smith 维护。
-
RUN:执行命令
语法:
RUN <command>
用于在容器中执行命令。比如:
RUN apt-get update && apt-get install -y curl
表示在容器中运行 apt-get update 和 apt-get install 命令,用于安装 curl 工具。
-
EXPOSE:声明容器运行时需要监听的端口号
语法:
EXPOSE <port>
用于声明容器需要监听的端口号。比如:
EXPOSE 80/tcp
表示容器将会监听 80 端口,协议是 TCP。
-
ENV:设置环境变量
语法:
ENV <key> <value>
用于设置环境变量。比如:
ENV NODE_ENV production
表示设置环境变量 NODE_ENV 的值为 production。
-
ADD/COPY:将本地文件复制到容器中
语法:
ADD <src> <dest>
COPY <src> <dest>
用于将本地文件复制到容器中。其中 ADD 命令会自动解压 tar 包,而 COPY 命令则直接复制文件。比如:
ADD app.tar.gz /app
表示将本地的 app.tar.gz 文件解压并复制到容器内路径为 /app 的位置。
-
CMD/ENTRYPOINT:指定容器启动时要执行的命令
语法:
CMD <command>
ENTRYPOINT <command>
用于指定容器启动时要执行的命令。其中 CMD 命令可以被覆盖,而 ENTRYPOINT 则不行。比如:
CMD ["npm", "start"]
表示默认情况下启动容器时会执行 npm start 命令。
除了这些基本命令外,还有一些其他常用的命令,例如:
-
WORKDIR:指定工作目录
语法:
WORKDIR <path>
用于设置容器的工作目录。比如:
WORKDIR /app
表示将容器的工作目录设置为 /app。
-
USER:指定运行容器的用户
语法:
USER <user>
用于指定容器运行时所使用的用户。比如:
USER node
表示在容器中以 node 用户身份运行。
-
VOLUME:声明匿名卷或挂载主机目录
语法:
VOLUME <path>
用于声明匿名卷或将主机上指定目录挂载到容器中。比如:
VOLUME /data
表示在容器中创建一个匿名卷,并将其挂载到 /data 目录下。
-
ARG:定义构建时的参数
语法:
ARG <name>[=<default value>]
用于定义构建时可以传递的参数。默认值是可选的。比如:
ARG NODE_ENV=production
表示定义一个名为 NODE_ENV 的参数,默认值为 production。
通过在 Dockerfile 中组合使用这些命令,可以实现对应用程序的打包和部署等操作。