Dockerfile 由一行行命令语句组成,并且支持#开头的注释行,一般分为四部分:
基础镜像信息维护者信息镜像操作指令容器启动时执行指令一个简单的栗子:
FROM openjdk:8-jdk-alpine # 基础镜像 VOLUME /tmp # 容器访问宿主机上的目录 ARG JAR_FILE # 引用参数 COPY ${JAR_FILE} app.jar # 拷贝文件 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # 容器启动后启动应用 EXPOSE 8080 # 指定端口FROM FROM命令必须是Dockerfile的首个命令,定义了使用哪个基础镜像启动构建流程。
MAINTAINER 指定维护者的信息,并应该放在FROM的后面。
RUN 它接受命令作为参数并用于创建镜像,RUN命令用于创建镜像。
CMD 镜像构建容器后被调用的命令
ENV 指定一个环境变量,会被后续 RUN 指令使用,并在容器运行时保持。
ADD ADD命令有两个参数,源和目标,它的基本作用是从源系统的文件系统上复制文件到目标容器的文件系统; 如果源是一个URL,那该URL的内容将被下载并复制到容器中; 如果文件是可识别的压缩格式,则docker会帮忙解压缩。
COPY 将文件从路径 <src复制添加到容器内部路径 ,同ADD。
EXPOSE 指定在docker允许时指定的端口进行转发。
USER 用于设置运行容器的UID。
VOLUME 用于让你的容器访问宿主机上的目录。
WORKDIR 用于设置CMD指明的命令的运行目录。
参考 --> https://docs.docker.com/engine/reference/builder/