Docker Swarm 和私有 IP
Docker Swarm and private IP
当我通过 docker 启动应用程序时,我可以在指定 IP 的端口上发布该应用程序。
假设我的服务器有两个ip(私有192.168.0.2和public 200.168.0.2),我可以用这个命令在私有ip上暴露一个应用程序:
docker run -it -p 192.168.0.2:80:80 nginx
如何使用 docker swarm 实现类似的功能?
我想我必须先创建一个 docker 网络层,但我不明白正确的语法是什么。
基本上我想做类似的事情:
docker network create \
--driver overlay \
--IP 192.168.0.2 \
--IP 192.167.0.1 \
private_net
docker service create --replicas 2 \
--network private_net --name my-web nginx
其中192.168.0.2和192.167.0.1是swarm集群服务器的IP。
Swarm 没有提供监听特定接口的选项,它默认监听所有接口。这是一个open issue。修改 docker 内的覆盖网络不会改变此行为。
当我通过 docker 启动应用程序时,我可以在指定 IP 的端口上发布该应用程序。
假设我的服务器有两个ip(私有192.168.0.2和public 200.168.0.2),我可以用这个命令在私有ip上暴露一个应用程序:
docker run -it -p 192.168.0.2:80:80 nginx
如何使用 docker swarm 实现类似的功能?
我想我必须先创建一个 docker 网络层,但我不明白正确的语法是什么。
基本上我想做类似的事情:
docker network create \
--driver overlay \
--IP 192.168.0.2 \
--IP 192.167.0.1 \
private_net
docker service create --replicas 2 \
--network private_net --name my-web nginx
其中192.168.0.2和192.167.0.1是swarm集群服务器的IP。
Swarm 没有提供监听特定接口的选项,它默认监听所有接口。这是一个open issue。修改 docker 内的覆盖网络不会改变此行为。