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

执行docker-compose启动pgadmin4报错端口已占用如何解决?

问题原因

你的pgadmin4容器启动失败是因为宿主机80端口已被占用:报错信息中明确提示listen tcp4 0.0.0.0:80: bind: address already in use,你配置的pgadmin4服务需要绑定宿主机的80端口对外提供服务,但该端口已经被其他进程(可能是本机运行的Nginx、Apache等Web服务,或者其他Docker容器)占用,Docker无法完成端口绑定所以启动失败。

修复方法

你可以根据自己的需求选择以下任意一种方案:

方案1:释放80端口

如果占用80端口的进程不需要保留,你可以先结束对应进程再启动容器:

  1. 执行命令查看占用80端口的进程ID:
    sudo lsof -i :80
    # 或者用
    sudo ss -tulpn | grep :80
    
  2. 拿到进程ID后执行sudo kill -9 <进程ID>结束进程
  3. 重新执行docker-compose up启动服务即可

方案2:修改pgadmin的端口映射(更推荐,不影响原有服务)

如果80端口的进程需要保留,直接修改docker-compose.yml配置中pgadmin的对外映射端口即可:

  1. 找到docker-compose.yml中pgadmin服务的ports配置段,将published的端口修改为未被占用的端口,比如8080:
    ports:
      - target: 80
        published: 8080 
        protocol: tcp
        mode: host
    
  2. 保存修改后,先执行docker-compose down停止已经启动的postgresql容器
  3. 重新执行docker-compose up启动两个容器,启动成功后访问http://<你的主机IP>:8080即可打开pgadmin页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:57:03