在 Docker Compose 文件中,我可以使用简写语法轻松发布一系列端口:
ports:
- "3000-3010:3000-3010/udp"
但就我而言,我需要将这些端口作为“mode=host”来绕过 swarm 覆盖网络。短形式的语法无法表达,所以我需要使用长形式:
ports:
- published: "3000-3010"
target: "3000-3010"
protocol: udp
mode: host
但是,Docker 似乎不喜欢使用长格式语法指定范围,因为我在部署堆栈时遇到了这个错误:
services.test.ports.0.target must be a integer
有没有办法做到这一点(通过将范围内的每个端口都指定为长格式的暴力破解除外)?
最佳答案
目前这是不可能的。
根据我在官方 docker slack channel 上关于此功能的讨论,使用长格式语法(这是目前唯一可用于在主机模式下发布端口的语法)公开端口范围是不可能的。
记住有一个 open ticke和这件事有关,我想在不久的将来会有可能。
关于docker - 如何使用 Docker Compose 文件发布具有 'mode=host' 的一系列端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45193939/