一 LABEL
LABEL <key>=<value> <key>=<value> <key>=<value>
一个LABEL指定一层,尽量合并为一个指令,同名覆盖。
LABEL "com.example.vendor"="ACME Incorporated"
LABEL com.example.label-with-value="foo"
LABEL version="1.0"
LABEL description="This text illustrates \
that label-values can span multiple lines."
LABEL maintainer="SvenDowideit@home.org.au"
docker inspect查看images的LABEL
"Labels": {
"com.example.vendor": "ACME Incorporated"
"com.example.label-with-value": "foo",
"version": "1.0",
"description": "This text illustrates that label-values can span multiple lines.",
"multi.label1": "value1",
"multi.label2": "value2",
"other": "value3"
},
二 EXPOSE
EXPOSE <port> [<port>/<protocol>...]
容器监听的端口,可以指定TCP或UDP,默认是TCP,并没有发布该端口。
例如:
EXPOSE 22 80 8443
告诉Docker服务器暴露的端口号,供互联系统使用。
在启动容器的时候如果使用-P,Docker主机自动分配一个端口和容器端口映射。
在启动容器的时候如果使用-p,则可以具体指定哪个宿主机端口和容器端口映射。
三 ENV
1 作用
指定一个环境变量,会被后续RUN指令使用,并在容器运行时候保持。
2 两种格式
ENV <key> <value>
ENV <key>=<value> ...
3 一些例子
ENV myName="John Doe" myDog=Rex\ The\ Dog \
myCat=fluffy
ENV myName John Doe
ENV myDog Rex The Dog
ENV myCat fluffy
结果相同,但是第一个只有一层
docker run --env <key>=<value>
指令一次性
RUN <key>=<value> <command>