问下docker容器如何跟宿主机的局域网进行通信的,获取能不能通过宿主机与其他电脑通信?

情况是这样的,我装了一个docker容器,用的net是bridge,然后宿主机有个网卡比如是10.12.23.5 ,现在我容器的ip是172.17.0.2
如何与10.12.23.6的电脑进行通信呢,docker容器需要配置什么?
然后宿主机能跟10.12.25.2电脑通信,不同网段的,那我这个容器内如何与这台电脑通信呢?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 7

试试用 host 模式

5个月前 评论

你的容器的端口一般和你的宿主机会做一个端口映射,相当于访问宿主机的端口,docker 只提供服务,不提供对外访问能力

5个月前 评论

别指定host,走默认就行了

5个月前 评论

docker 容器内与宿主机的内网互通,是这个意思吗?
应该是不能直接互通的,只能通过宿主机转发,容器的局域网IP是 172.17.0.2,那么网关是 172.17.0.1,也就是宿主机IP,以容器访问宿主机的内网中的这台机器 10.12.23.6 为例,在宿主机设置转发规则 9501端口 -> 10.12.23.6:80,在容器内与 172.17.0.1:9501 通信,即通过宿主机转发到 10.12.23.6
宿主机设置转发,可参考 博客:linux 利用防火墙(firewall)转发实现外网服务器通过中间服务器访问...
这个场景我没试过,理论上应该可以,你可以试下

5个月前 评论

桥接的话应该会给容器分配一个与宿主同网段的ip,然后既然是同网段了正常访问就行了

5个月前 评论

参考docker官方文档:

docs.docker.com/desktop/networking... docs.docker.com/engine/release-not...

新版的 Docker Desktop(基于WSL2引擎) 安装后会在 host 中插入

```192.168.100.112 host.docker.internal

192.168.100.112 gateway.docker.internal```

192.168.100.112 是 Windows 宿主机在局域网中的 IP 地址, 我们可以在容器内通过 host.docker.internal 访问宿主机,比如:

mysql -u root -h host.docker.internal -P 3306 -p 1234567

网关可以通过 gateway.docker.internal 访问。

5个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!