不使用Docker Desktop for Windows如何获取Docker宿主机地址
Windows Server运行Windows容器访问宿主机的可行解决方案
以下是生产环境Windows Server无Docker Desktop场景下的可落地方案:
- 使用宿主机物理网卡静态IP
若宿主机网络环境固定,可先为宿主机物理网卡配置静态IP,容器内直接访问该静态IP即可。操作时需注意在Windows Server防火墙中添加入站规则,允许容器所在网段访问宿主机提供服务的对应端口。 - 使用Docker NAT网络的网关IP(无物理网络也可用)
Windows容器默认连接的nat网络的网关对应宿主机的虚拟网卡IP,无需依赖外部网络:- 在宿主机执行
ipconfig,找到名称为vEthernet (nat)的适配器,记录其IPv4地址 - 容器内直接访问该IP即可连通宿主机,若使用自定义Docker网络,查找对应虚拟网卡的IP即可使用
- 在宿主机执行
- 启动容器时手动绑定Hosts记录
可在启动容器时通过--add-host参数自定义宿主机的域名绑定,避免记忆IP:
可配合自动化脚本,启动前自动获取宿主机当前IP填充到参数中,适配宿主机IP动态变化的场景。docker run --add-host=host.local:【宿主机IP地址】 你的镜像名称 - Docker Compose场景配置extra_hosts
若使用Docker Compose部署,可在服务配置中添加extra_hosts字段完成绑定:services: your-service: image: your-image-name extra_hosts: - "host.local:【宿主机IP地址】"
注意事项:所有方案均需提前确认Windows Server防火墙放开了对应服务端口的入站访问权限,可单独针对Docker容器的网段设置白名单,避免全局开放端口带来的安全风险。
内容的提问来源于stack exchange,提问作者GoldieLocks
相关产品推荐
相关产品推荐

