【发布时间】:2017-12-13 11:54:10
【问题描述】:
当使用docker run发布端口时,我们可以让docker在指定范围内动态选择一个主机端口,例如:
~ $ docker run -d -p 30005-30010:80 alpine tail -f /dev/null
263d3cfa4ba591cb9a1adb5087058aa716c534f33a498cc5457c0c2152b41808
~ $ docker port 263
80/tcp -> 0.0.0.0:30005
这里,docker 已经在主机上选择了一个 30005-30010 范围内的空闲端口来映射到容器的 80 端口。 使用 cli 或 compose 文件似乎无法使用 docker swarm 服务执行此操作。例如
~ $ docker service create -p 30005-30010:80 alpine tail -f /dev/null
invalid argument "30005-30010:80" for p: invalid hostport binding (30005-30010) for port (80)
这是集群模式的限制,还是我遗漏了什么?
【问题讨论】:
标签: docker docker-swarm