微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

docker 容器中 TCP 服务器中的远程 IP 地址无效

如何解决docker 容器中 TCP 服务器中的远程 IP 地址无效

我有一个 tcp 服务器 nodejs,一些客户端可以连接到它并根据 ip 地址进行身份验证,但是 docker 中的 tcp 服务器找不到客户端的有效远程 ip 地址。当连接到服务器时,每个客户端都找到无效的 172.17.0.1 地址远程地址。有没有办法找到真正的远程IP地址?

解决方法

Docker 中的容器在与主机隔离的自己的命名空间中工作,因此它们获得单独的 IP 地址。主机上暴露的端口会被转发到容器,所以在这个过程中你会丢失原始IP。

如果您使用的是 linux 主机,则可以按照 documents 中的说明为容器创建一个 host 网络,以创建与主机网络位于同一命名空间中的容器。

>

当您使用 --network host 启动容器时,您将位于与主机相同的网络命名空间中,因此不会涉及额外的路由。

示例:

docker run --rm -d --network host <container>

如果您在虚拟机中运行 docker(例如 Mac 的 Docker 或 Windows 的 Docker),那么您需要在容器网络和主机网络之间创建一个桥接器。以下是一些可以提供帮助的网站

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。