代码之家  ›  专栏  ›  技术社区  ›  tgdavies

Dockerfile EXPOSE命令的语法是什么?

  •  0
  • tgdavies  · 技术社区  · 3 年前

    阅读docker文档,网址: https://docs.docker.com/engine/reference/builder/#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 不合法的

    1 回复  |  直到 3 年前
        1
  •  1
  •   P Varga    3 年前

    语法实际上有点像

    "EXPOSE ", { p };
    

    哪里

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

    (在EBNF中)

    EXPOSE 8080 8081 暴露两个端口?

    EXPOSE 80/tcp 80/udp 不合法的

    推荐文章