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

macOS Big Sur环境下Docker容器无法通过127.0.0.1访问但localhost可正常访问

问题原因
  • 你遇到的问题本质是IPv4/IPv6双栈解析差异导致的:macOS默认开启IPv6支持,你的hosts文件中localhost同时对应IPv4地址127.0.0.1和IPv6地址::1,curl请求localhost时会自动选择可用的协议栈;而直接请求127.0.0.1时强制走IPv4协议栈。
  • 当你使用-p 80:80无地址指定的方式启动容器时,Docker Desktop会尝试同时绑定IPv4和IPv6的80端口:如果此时你的IPv4 80端口已被系统自带Apache、其他本地服务占用,Docker只会绑定成功未被占用的IPv6 80端口,最终导致IPv4的127.0.0.1访问失败,IPv6的localhost访问正常。
  • 少数情况是Docker Desktop的IPv4环回转发规则因Big Sur系统权限限制出现异常,无法将127.0.0.1的请求转发到容器内部。
解决方案
  • 方案1:先排查IPv4 80端口占用情况,执行命令:
    sudo lsof -i :80 | grep LISTEN
    如果返回有其他运行中的进程占用80端口,终止对应进程后重启Docker容器即可恢复127.0.0.1访问。
  • 方案2:启动容器时显式指定绑定IPv4地址,命令如下:
    docker run --name mynginx1 -p 0.0.0.0:80:80 -d nginx
    该命令会强制容器绑定所有IPv4接口的80端口,完成后即可通过127.0.0.1正常访问服务。
  • 方案3:如果仅需本地访问容器,可指定绑定本地环回IPv4地址,安全性更高:
    docker run --name mynginx1 -p 127.0.0.1:80:80 -d nginx
  • 方案4:若确认无端口占用,可重置Docker网络配置:关闭所有运行容器后,打开Docker Desktop设置的「故障排查(Troubleshoot)」页,选择「恢复出厂设置」,重启Docker后重新启动容器测试即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:57:03