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

Docker for Mac如何强制使用固定静态IP?

解决Docker for Mac动态IP变更的问题

嘿,我太懂这种频繁改IP的糟心感了——之前用Docker Toolbox的时候,虚拟机IP还相对稳定,换成Docker for Mac后,这种动态跳IP的情况确实能把人折腾疯,尤其是你还把一堆配置都绑在IP上。下面给你几个实用的解决办法,按优先级推荐:

优先推荐:用内置域名替代IP(零配置)

Docker for Mac专门做了适配,默认提供了host.docker.internal这个特殊域名,它会自动解析到Docker宿主机(也就是你的Mac)的真实IP,不管IP怎么变都能正常工作:

  • 数据库连接:把之前的192.168.0.198:3306改成host.docker.internal:3306,再也不用管IP变更
  • SSH连接:直接用ssh your-user@host.docker.internal(前提是你已经映射了SSH端口)
  • 主机配置:所有指向Docker IP的地方,全换成这个域名就行,一劳永逸

如果你必须用固定IP:创建自定义Docker网络

要是某些场景硬要指定IP(比如老系统只认IP),可以自己创建一个带固定子网的Docker网络,给容器分配静态IP:

  1. 先创建自定义桥接网络,指定子网和网关:
    docker network create --subnet=192.168.100.0/24 --gateway=192.168.100.1 my-static-network
    
  2. 启动容器时,指定这个网络并分配固定IP:
    docker run -d --name my-app-container --network my-static-network --ip 192.168.100.15 your-image
    
    这样这个容器的IP就永远是192.168.100.15,不会随便变动
  3. 让Mac本地能访问这个IP:需要加一条路由规则(Docker for Mac的自定义网络默认隔离)
    sudo route -n add 192.168.100.0/24 192.168.65.1
    
    这里的192.168.65.1是Docker for Mac默认的宿主机网关,你可以用ifconfig | grep -A 5 bridge100命令确认这个地址

进阶方案:固定Docker虚拟机的IP(谨慎使用)

Docker for Mac用HyperKit虚拟机替代了VirtualBox,默认是动态获取IP的。你可以修改它的配置文件来固定IP,但要注意Docker更新可能会重置这个配置:

  1. 先彻底关闭Docker Desktop:
    osascript -e 'quit app "Docker Desktop"'
    
  2. 找到HyperKit的配置文件,路径一般是~/Library/Containers/com.docker.docker/Data/vms/0/config.json
  3. 编辑文件,找到Ipv4节点,把Dynamic改成false,并指定你想要的固定IP、子网和网关:
    "Ipv4": {
      "Address": "192.168.0.198",
      "Netmask": "255.255.255.0",
      "Gateway": "192.168.0.1",
      "Dynamic": false
    }
    
  4. 重新启动Docker Desktop,虚拟机的IP就固定下来了

内容的提问来源于stack exchange,提问作者Marcin Nabiałek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:39:54