You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VirtualBox地址与Docker容器地址不匹配的原因是什么?

为什么你的Docker应用访问IP从192.168.99.1变成了192.168.99.100?

嘿,这个问题我之前用Docker Toolbox的时候也踩过同款坑,本质是VirtualBox和Docker网络角色的混淆,给你掰扯清楚:

1. 两个IP的本质区别

  • 192.168.99.1 是你的物理主机在VirtualBox Host-Only网络中的IP地址——简单说就是你自己的电脑在这个专属虚拟网络里的身份标识。
  • 192.168.99.100 是Docker自动创建的**VirtualBox虚拟机(Docker Machine)**的IP地址——这才是真正运行你容器的"宿主机器",所有容器的端口都是映射到这个虚拟机IP上的。

2. 为什么一开始能用192.168.99.1访问?

大概率是这两个原因之一:

  • 当时你的容器端口映射是绑定到0.0.0.0(默认配置),而且物理主机上对应的端口没有被其他程序占用。由于VirtualBox Host-Only网络是双向连通的,你通过物理主机IP也能"穿透"到虚拟机里的容器。
  • 可能你当时误打误撞用对了端口,刚好物理主机的端口和虚拟机的端口转发规则匹配上了。

3. 修改/回滚后为什么失效?

  • 重启容器时,可能端口映射的配置被意外修改(比如你更新镜像时调整了docker run的端口参数),或者物理主机上的目标端口被其他进程占用了,导致通过物理主机IP的访问路径被阻断。
  • 回滚镜像只是恢复了容器内的应用代码,但网络层面的问题(比如端口占用、虚拟机IP的默认规则)并没有被修复,所以还是无法通过192.168.99.1访问。

4. Kitematic显示的才是正确地址

Kitematic作为Docker Toolbox的可视化工具,会直接读取Docker Machine的真实IP——也就是192.168.99.100,这才是你应该用来访问容器应用的标准地址。以后不管怎么重启容器或更新镜像,只要Docker Machine没被重建,这个IP基本不会变。

另外,你可以用命令 docker-machine ip default 直接查看Docker主机的IP,比ipconfig更准确哦~

内容的提问来源于stack exchange,提问作者aebabis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:07:41