Dockerfile 语法
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 # 指定端口
1命令
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指明的命令的运行目录。