11.dockerfile之ENV指令
一、ENV指令说明
ENV指令用来在镜像构建过程中设置环境变量,后续的RUN可以使用它所创建的环境变量
当创建基于该镜像的container的时候,会自动拥有设置的环境变量
二、ENV案例
首先,编写dockerfile:
#base image FROM centos #MAINTAINER,this dockerfile creater MAINTAINER loose@docker.com #设置环境变量 ENV env variable
其次,构成镜像:
最后,进入伪交互模式,并通过env命令查询环境变量:
说明:
1.通过ENV定义的环境变量,可以被后面的所有指令中使用,比如我们构建了nginx:v1.0镜像,配置了ENV env 123;以nginx:v1.0为基础镜像再构建一个新的镜像jdk:v1.0,那么jdk:v1.0也会拥有该环境变量:
再次创建一个镜像,以上方的eng:v1.0镜像为基础镜像:
#base image FROM eng:v1.0 #MAINTAINER,this dockerfile creater MAINTAINER loose@docker.com
构建一个新的镜像:
进入交互模式,然后通过env命令查询环境变量:
2.通过ENV定义的环境变量,可以在dockerfile被后面的所有指令中使用
ENV env variable
RUN mkdir $env
3.通过ENV定义的环境变量不能被CMD指令使用,也不能被docker run 的命令参数引用
4.在docker run 命令中通过 -e标记来传递环境变量,这样容器运行时就可以使用该变量: