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

M1 Mac使用Docker Compose时提示80端口被占用但检测无进程

M1 MacBook Docker容器80端口绑定失败排查方案

启动Docker容器时出现如下错误:

(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down

但执行sudo lsof -i :80却检测不到进程占用,针对M1芯片Mac的特殊情况,可按以下步骤排查:

  • 停止系统自带Apache服务
    M1 Mac默认可能启用了Apache服务占用80端口,执行以下命令关闭并禁用开机启动:

    sudo apachectl stop
    sudo apachectl disable
    
  • 检查并调整pf防火墙规则
    系统pf防火墙的端口转发规则可能占用80端口,先查看当前nat规则:

    sudo pfctl -s nat
    

    如果发现包含80端口的转发规则,可临时禁用pf测试:

    sudo pfctl -d
    

    确认问题解决后,再修改/etc/pf.conf调整规则,避免影响其他服务。

  • 排查Docker自身端口冲突
    查看所有容器的端口映射配置,包括未运行的容器:

    docker ps -a --format "{{.Names}}: {{.Ports}}"
    

    如果发现有容器已配置80端口映射,可删除该容器或修改其端口映射;也可清理Docker未使用的资源:

    docker system prune -f
    

    注意:该命令会删除未运行的容器、悬空镜像等,执行前确认无需保留这些资源。

  • 关闭AirPlay接收器(M1专属坑)
    M1芯片Mac的AirPlay接收器默认会占用80端口,这是最容易忽略的点。前往系统设置->通用->AirPlay与接力,关闭「AirPlay接收器」选项,然后重启Docker服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:48:21