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

Docker compose启动nginx服务报错Address already in use求助

Docker Compose 启动Nginx报Address already in use解决方案

1. 全链路排查端口占用

不要仅通过是否安装Nginx/Apache判断端口状态,执行命令确认80端口真实占用情况:

  • Linux/macOS执行:
    sudo lsof -i :80
    # 或
    sudo netstat -tulpn | grep :80
    
  • Windows cmd执行:
    netstat -ano | findstr :80
    

如果查询到占用进程,执行对应命令终止进程:

  • Linux/macOS:sudo kill -9 <进程ID>
  • Windows:taskkill /F /PID <进程ID>

2. 清理Docker残留资源

此前未正常退出的Nginx容器、残留网络绑定都会导致该报错,哪怕修改端口也会触发:

  • 先停止当前compose栈:docker-compose down
  • 清理所有无用Docker资源:
    docker system prune -f
    
  • 检查残留同名容器:
    docker ps -a | grep nginx
    # 存在残留则执行删除
    docker rm -f nginx
    
  • 检查自定义网络残留绑定:
    docker network inspect mp-network
    # 若网络关联了旧容器,直接删除网络,启动时会自动重建
    docker network rm mp-network
    

3. 排查静态IP冲突(修改端口仍报错核心原因)

你配置了容器固定IP192.168.220.10,如果该IP被同网段其他设备/容器占用,也会触发地址已占用报错:

  • 临时注释compose配置中Nginx服务的固定IP配置段:
    # networks:
    #   mp-network:
    #     ipv4_address: 192.168.220.10
    
  • 重新执行docker-compose up -d测试
  • 如果可以正常启动,说明固定IP冲突,更换为mp-network网段内未被使用的IP即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:36:01