首页/云/Docker 容器速查/端口冲突 address already in use
容器排障52 条

端口冲突 address already in use

绑定已占用端口时 docker run 报 bind: address already in use(或 userland proxy 报错):先找谁占了端口——其他容器或宿主进程。

Docker 容器速查云更新于 2026-10-12
报错形态bind: address already in use / userland proxy listen
排查方向容器映射 vs 宿主进程(含 docker-proxy)
处置改映射端口或停掉占用方

示例

示例
docker ps -a --format '{{.Names}} {{.Ports}}' | grep 8080
ss -ltnp | grep 8080
sudo lsof -i :8080
docker run -d -p 8081:80 --name web nginx:1.27
docker-proxy 进程代表 Docker 自己的端口转发;停掉它会破坏对应容器的端口发布。

易错点

  • 同一宿主上两个容器各自绑定宿主不同端口没问题,冲突发生在宿主端口这一侧
  • --network host 模式下发布端口参数被忽略,冲突排查对象直接是宿主端口

数据来源与参考

  • Docker 官方文档:port publishing 与 userland proxy(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌