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

如何从Docker容器访问OSX(Mac)主机暴露的端口服务

解决方案

步骤1:修改私有以太坊节点的监听配置

你当前以太坊节点默认仅绑定127.0.0.1回环地址,仅允许本地进程访问,Docker容器发起的请求属于外部访问会被直接拒绝。启动节点时添加以下参数即可放开监听:

  • 如果你使用Geth 1.10+版本:添加--http.addr 0.0.0.0参数,同时可以按需添加--http.vhosts="*"避免虚拟主机校验拦截
  • 如果你使用旧版Geth:添加--rpcaddr 0.0.0.0参数

步骤2:配置Docker容器的宿主机映射

如果host.docker.internal默认解析失败,可以手动在docker-compose中添加hosts映射规则,无需手动填写固定IP:

version: '3'
services:
  jenkins:
    extra_hosts:
      - "host.docker.internal:host-gateway"

该配置会自动适配Mac系统的Docker网络,将域名映射到宿主机对应的网关地址。

步骤3:放行Mac系统防火墙端口

Mac系统默认防火墙会拦截外部请求访问8545端口,按以下路径操作放行:
系统设置 > 网络 > 防火墙 > 选项,找到你运行以太坊节点的程序,勾选允许传入连接,也可以临时关闭防火墙做连通性验证。

效果验证

配置完成后重启容器和以太坊节点,再次执行测试代码即可返回True:

from web3 import Web3
w3 = Web3(Web3.HTTPProvider('http://host.docker.internal:8545'))
print(w3.isConnected())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:06:05