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
相关产品推荐
相关产品推荐

