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

Ubuntu 22使用Docker Compose时端口被docker-pr占用致容器启动失败

解决Docker Compose启动时docker-pr占用端口的问题

问题根源

docker-pr是Docker的端口转发进程,正常情况下容器停止后会自动释放端口,但出现这类问题大多是容器未正常退出,导致Docker网络命名空间残留,端口转发进程未被自动清理。

修复方案

1. 清理残留Docker资源

执行命令清理所有未使用的容器、网络、卷和镜像(确认无重要未备份资源后操作):

docker system prune -af

若仅需清理网络资源:

docker network prune -f

2. 强制清理残留容器

先查看所有容器(含已停止状态):

docker ps -a

找到与占用端口关联的容器,强制停止并删除:

docker rm -f <容器ID/名称>

3. 优化Docker Compose配置避免冲突

  • 改用动态端口映射:将docker-compose.yml中固定端口如ports: "8080:80"改为ports: "8080-8090:80",Docker会自动分配可用端口。
  • 使用自定义隔离网络:在配置文件中添加专属网络,避免与其他容器网络冲突:
    version: '3.8'
    services:
      your-service:
        # 其他服务配置
        networks:
          - custom-net
    networks:
      custom-net:
        driver: bridge
    

4. 重启Docker服务

若上述方法无效,重启Docker彻底清理残留进程:

# Linux系统
sudo systemctl restart docker

# macOS(Homebrew安装的Docker)
brew services restart docker

# Windows(PowerShell管理员模式)
Restart-Service Docker

内容的提问来源于stack exchange,提问作者Jocelin Quéau

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:37:05