EXPOSE指令通知Docker,容器运行期间监听指定的网络端口。EXPOSE不会自动使主机的容器端口可访问。要设置监听EXPOSE指定的端口,必须使用-p参数来发布一组端口或-P参数来发布所有EXPOSE的端口。你可以暴露容器的一个端口并在外部发布另一个不同的端口。比如发布容器的80端口到主机的8080端口。
ENV指令设置环境变量
ENV指令有两种形式,第一种是
第二种形式允许同时设置多个变量。设置这种形式使用了等于号,第一种是没有使用的。像命令行解析,引号和反斜杠可以用来包括空格。
例如:
和:
虽然这两种形式得到的结果一样,但推荐第一种,因为它只生成了一个缓存层。
使用ENV设置环境变量将永久存在于从该镜像运行的容器中。你可以使用docker inspect查看这些值,也可以使用
更改它们。
注意:环境变量的存在可能引起意外的副作用。例如,设置ENV DEBIAN_FRONTEND noninteractive可能会使在基于Debian镜像的apt-get用户感到困惑。要在单个命令中使用变量,可以使用
- RUN <key>=<value> <command>