Dockerfile EXPOSE命令的语法是什么?

t40tm48m  于 2022-12-26  发布在  Docker
关注(0)|答案(1)|浏览(126)

阅读www.example.com上的Docker文档https://docs.docker.com/engine/reference/builder/#expose,expose命令语法描述如下:

EXPOSE <port> [<port>/<protocol>...]

对我来说,这表明我可以像这样使用它:

EXPOSE 8080
EXPOSE 8080 8081/tcp 8082/udp

但不是

EXPOSE 8080/tcp

他们给予的例子与此相矛盾:

EXPOSE 80/udp

并且为了在不同协议上暴露相同端口,他们建议使用两行:

EXPOSE 80/tcp
EXPOSE 80/udp

语法描述实际上是什么意思?EXPOSE 8080 8081是否暴露两个端口?EXPOSE 80/tcp 80/udp是否非法?

djp7away

djp7away1#

语法实际上类似于

"EXPOSE ", { p };

其中

p = port, [ "/", proto ], " ";

(in EBNF)
EXPOSE 8080 8081是否公开了两个端口?
是的
EXPOSE 80/tcp 80/udp是否非法?
没有

相关问题