服务器中运行项目端口号冲突
- 描述
- 问题
- 1.检查8080端口号是哪个进程在使用。
- 2.pid
- 解决
描述
服务器中运行项目端口号冲突,导致现在进行部署的项目启动失败。
问题
$dockercompose up-d[+]Running8/9 ✔ Network weknora_WeKnora-network Created0.1s ✔ Volume"weknora_data-files"Created0.0s ✔ Volume"weknora_postgres-data"Created0.0s ✔ Volume"weknora_docreader-tmp"Created0.0s ✔ Container WeKnora-redis Started0.7s ✔ Container WeKnora-postgres Healthy11.2s ✔ Container WeKnora-docreader Healthy6.2s ⠼ Container WeKnora-app Starting11.4s ✔ Container WeKnora-frontend Created0.1s Error response from daemon: failed tosetup container networking: driver failed programming external connectivity on endpoint WeKnora-app(0766b2b42271497e1eda6fd593fee10dce367ea273827ffb39ae58bbe5af8e3f): failed tobindhostportfor0.0.0.0:8080:172.20.0.5:8080/tcp: address alreadyinuse上述很容易看出是端口号冲突问题
1.检查8080端口号是哪个进程在使用。
sudo ss -ltnp 'sport = :8080'
接下来,通过pid定位。
2.pid
查看启动命令,通常能看到 jar、Python 脚本或项目路径ps-p12345-opid,ppid,user,lstart,args# 查看进程的工作目录sudoreadlink-f/proc/12345/cwd# 查看它是否由 systemd 服务管理sudosystemctl status12345--no-pager解决
只能杀死就项目进程。
或者我们就是直接修改weknora项目的端口号。
- 使新配置生效在Weknora项目中的
.env配置文件中修改APP_PORT=8080:
# 应用服务宿主机映射端口,默认 8080(仅影响宿主机访问,不影响容器间通信)。 APP_PORT=8080
- 使新配置生效:
dockercompose config--quietdockercompose up-d--wait--wait-timeout180dockercomposeps-a
tips:使用 up 应用配置变更;无需重新拉取镜像。