Dockerfile介绍

Dockerfile 是由一系列命令和参数构成的脚本,通过脚本创建镜像

命令 作用
FROM Dockerfile编写 - 图1: 定义使用的基础镜像启动构建流程
MAINTAINER user_name (废弃) 声明镜像创建人,使用label
LABEL key1 value1 key2 value2 …
做标记,没有实际意义
ENV key value 设置环境变量(可以多条)
RUN command 容器构建时容器内执行的命令(可以多条,dockerfile的核心部分)
ADD source_dir/file dest_dir/file 将宿主机或网络资源的文件复制到容器内。若是宿主机压缩文件,将在复制后自动解压。网络资源不会解压
COPY source_dir/file dest_dir/file 和ADD 相似,但只能从宿主机拷贝文件,若是有压缩文件不会解压
WORKDIR path_dir 设置工作目录
CMD 用户给容器指定运行程序
ENTRYPOINT 类似CMD指令。用户给容器指定运行程序
ARG 可以在构建的时候传入指定参数来覆盖文件中编写的配置
ONBUILD 在镜像被他人使用时执行的命令,不能嵌套使用

示例

Dockerfile文件内容

  1. #基础镜像
  2. FROM centos:latest
  3. #作者
  4. MAINTAINER luoqiz
  5. #切换工作目录
  6. WORKDIR /usr
  7. #创建data目录
  8. RUN mkdir -p /usr/local/java-1
  9. #添加jdk包
  10. ADD jdk-8u191-linux-x64.tar.gz /usr/local/java/
  11. #配置环境变量
  12. ENV JAVA_HOME /usr/local/java/jdk1.8.0_191 ENV JRE_HOME $JAVA_HOME/jre ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH $PATH:$JAVA_HOME/bin

执行命令

  1. docker build -t jdk1.8.191:0.0.1 .