码头工人的Windows:使用相同的端口号在本地纺纱多台Docker容器

问题描述 投票:0回答:2

我使用泊坞Windows版桌面(使用Hyper-V,不是泊坞窗工具包的Windows)。我想做到的是旋转起来3+泊坞窗容器中,用同一套可用的端口。

我创建第一个泊坞窗容器后,我有http://docker:8091(或http://10.0.75.2:8091)可用,这很好。现在,我想要做的就是旋转起来另一个容器可用相同的端口号。所以,像http://docker2:8091,或http://10.0.75.3:8091)。然后另外一个在docker3或*.4:8091

(请注意,这是小菜一碟旋转起来了3个箱重新分配给其他一些随机端口暴露的端口,但我想保留的端口号)。

我试着通过的Hyper-V管理器将网络适配器MobyLinuxVM,但只是似乎打破泊坞窗,我必须重新安装得到它重新工作。

我试着旋转了泊坞窗机(docker-machine create -d hyperv --hyperv-virtual-switdch DockerNAT AnotherBox)另一个Hyper-V的实例,但只是锁定了约一半并不起作用。 (基于什么我读的论坛,与泊坞窗机的意图上泊坞的Windows不是我能够无论如何要做到这一点,它只是在云中管理VM)。

所以...有没有什么办法来完成我想要做什么?

windows docker docker-machine docker-for-windows docker-desktop
2个回答
1
投票

为了发布港口,码头工人使用二进制泊坞窗代理转发放入容器内,有效地喜欢:

docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8091 -container-ip 172.17.0.2 -container-port 8091

显然,结合该例子的所有接口,但我相信它有可能绑定到特定的接口。

假设你有你的主机上的3个接口,以及相应的DNS记录,这有啥可能够做到这一点,如:

docker-proxy -proto tcp -host-ip 10.0.75.2 -host-port 8091 -container-ip 172.17.0.2 -container-port 8091
docker-proxy -proto tcp -host-ip 10.0.75.3 -host-port 8091 -container-ip 172.17.0.3 -container-port 8091
docker-proxy -proto tcp -host-ip 10.0.75.4 -host-port 8091 -container-ip 172.17.0.4 -container-port 8091

1
投票

是的,有一种方法,通过使用反向代理。您可以使用Nginx的或HAProxy的容器内或者更简单的,你可以使用自动重新配置自身反向代理的集装箱Nginx上的图像:https://hub.docker.com/r/jwilder/nginx-proxy/

© www.soinside.com 2019 - 2024. All rights reserved.