gpt4 book ai didi

windows - Docker for Windows : Spinning up multiple docker containers locally with same port numbers

转载 作者:行者123 更新时间:2023-12-02 21:26:02 25 4
gpt4 key购买 nike

我正在使用 适用于 Windows 的 Docker 桌面 (使用 Hyper-V ,而不是 Docker Toolkit for Windows )。我想要完成的是启动 3 个以上的 docker 容器,并提供相同的端口集。

创建第一个 docker 容器后,我有 http://docker:8091 (或 http://10.0.75.2:8091 )可用,这很好。现在,我想做的是启动另一个具有相同端口号的容器。所以,像 http://docker2:8091 , 或 http://10.0.75.3:8091 )。然后另一个在 docker3 或 *.4:8091 .

(请注意,启动三个将暴露端口重新分配给其他随机端口的容器是小菜一碟,但我想保留端口号)。

我尝试通过 Hyper-V 管理器向 MobyLinuxVM 添加网络适配器,但这似乎破坏了 Docker,我必须重新安装才能让它再次工作。

我尝试使用 docker-machine ( docker-machine create -d hyperv --hyperv-virtual-switdch DockerNAT AnotherBox ) 启动另一个 Hyper-V 实例,但这只是锁定了一半并且不起作用。 (根据我在论坛上阅读的内容,Docker for Windows 上的 docker-machine 的意图并不是让我能够做到这一点,它只是为了管理云中的虚拟机)。

那么......有什么办法可以完成我想要做的事情吗?

最佳答案

为了发布端口,docker 使用二进制 docker-proxy 转发到容器中,实际上像:

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

显然,它绑定(bind)到本示例中的所有接口(interface),但我认为可以绑定(bind)到特定接口(interface)。

假设您的主机上有 3 个接口(interface)和适当的 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

关于windows - Docker for Windows : Spinning up multiple docker containers locally with same port numbers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38044685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com