-
FROM:指定基础镜像。
FROM openjdk:8-jdk-alpine
在上述例子中,我们使用openjdk:8-jdk-alpine作为基础镜像。
-
RUN:在容器内执行命令。
RUN apk update && apk add bash
在上述例子中,我们在容器内执行了两个命令,分别是更新apk包管理工具和安装bash终端程序。
-
COPY/ADD:将本地文件或目录复制到容器内。
COPY myapp.jar /app/
在上述例子中,我们将当前目录下的myapp.jar文件复制到容器内的/app/目录下。
-
WORKDIR:设置工作目录。
WORKDIR /app/
在上述例子中,我们将工作目录设置为/app/目录。
-
CMD/ENTRYPOINT:指定容器启动后要运行的命令。
CMD ["java", "-jar", "/app/myapp.jar"]
在上述例子中,我们使用CMD指令指定容器启动后要运行的命令,即运行myapp.jar文件。
ENTRYPOINT ["java", "-jar"] CMD ["/app/myapp.jar"]
在上述例子中,我们使用ENTRYPOINT指令指定容器启动后要运行的命令,即运行Java命令,-jar选项指定要运行的jar包,然后使用CMD指令指定jar包的路径。
-
EXPOSE:声明容器将监听哪些网络端口。
EXPOSE 8080
在上述例子中,我们声明容器将监听8080端口。
-
ENV:设置环境变量。
ENV MY_ENV_VAR=my_value
在上述例子中,我们设置了一个名为MY_ENV_VAR的环境变量,并将其值设置为my_value。
-
ARG:设置构建时参数。
ARG MY_ARG=default_value
在上述例子中,我们设置了一个名为MY_ARG的构建时参数,并将其默认值设置为default_value。
这些指令和配置是Dockerfile中最常用的,还有其他更多的指令和配置,可以在Docker官方文档中了解