我有一台托管虚拟机/Docker 容器的 Debian 机器。我想从外部机器访问该容器,但它不仅仅是我需要访问的单个端口,因为该容器托管一个网站,我需要能够向不同页面发出请求,例如“site.com/ home”或“site.com/index”,我需要能够访问容器上的不同端口,比如192.49.11.1:1234
,192.49.11.1
容器的 IP 地址在哪里(我不知道它是如何得到的,确切地说)。
我的网络由 Debian 机器、外部(Windows 10)机器和路由器组成。我在想,如果我要在路由器的路由表中添加一条记录,告诉它将任何请求路由192.49.11.1
到 Debian 机器,并且它会知道将它们路由到容器,我会得到我想要的。
问题是我该怎么做,这可行吗?
执行此操作的规范方法是将容器的端口映射到 Docker 主机上的端口,使用
-p
选项、Docker Compose YAML 文件中的条目或您使用的任何内容。如果您有多个端口,请映射所有端口。所以你必须让 Debian 机器成为你网络的一部分。你没有告诉我们它是什么类型的虚拟机(WSL?Hyper-V?)。谷歌你正在使用的任何类型的虚拟机的文档。(使用 WSL 非常困难,但有一种解决方法)。
您不会向容器的 IP 发出请求(它可能一开始就没有这个地址)。您向 Debian 主机的 IP 发出请求,或者如果您还需要 WSL 的端口转发,则向 Windows 主机发出请求。