在 docker 服务中公开一系列端口
Expose a range of ports in docker service
有没有办法在创建 swarm 服务时公开一系列端口(例如:-p 1024-2000:1024-2000
)?我知道容器是可能的,但 Swarm 服务也可能吗?如果是,我在文档中找不到如何做到这一点。
我需要此功能来公开包含 vsftpd 的服务。
发布问题 https://github.com/docker/docker/issues/30560 后,我得到的回复是此功能在版本 1.13.
中可用
对于无法升级到这个版本的其他人,我写了一个脚本bash,它会循环绑定所有端口:
expose_range(){
p="";
for i in `seq `;
do
if [[ != '--publish-rm' ]]; then
p="$p $i:$i"
else
p="$p $i"
fi
done
echo $p
}
command="docker service create --name vsftpd -p 2021:21 `expose_range ${vsftpd_port_min} ${vsftpd_port_max} '-p'` panubo/vsftpd"
eval $command
有没有办法在创建 swarm 服务时公开一系列端口(例如:-p 1024-2000:1024-2000
)?我知道容器是可能的,但 Swarm 服务也可能吗?如果是,我在文档中找不到如何做到这一点。
我需要此功能来公开包含 vsftpd 的服务。
发布问题 https://github.com/docker/docker/issues/30560 后,我得到的回复是此功能在版本 1.13.
中可用对于无法升级到这个版本的其他人,我写了一个脚本bash,它会循环绑定所有端口:
expose_range(){
p="";
for i in `seq `;
do
if [[ != '--publish-rm' ]]; then
p="$p $i:$i"
else
p="$p $i"
fi
done
echo $p
}
command="docker service create --name vsftpd -p 2021:21 `expose_range ${vsftpd_port_min} ${vsftpd_port_max} '-p'` panubo/vsftpd"
eval $command