找到占用80的端口应用并关闭掉

宿主机上 0.0.0.0:80 这个端口已经被别的进程/容器占用了,所以 Docker 里的 aivirtualcourt-nginx-1 没法把容器的 80 端口映射到宿主机 80。

报错关键句:

• failed to bind port 0.0.0.0:80/tcp

• bind: address already in use

也就是:端口 80 已经在用。

你现在输出里有哪些"误导点"

你执行了:

ps -ef | grep 80

这并不能找到"谁占用了 80 端口",它只是找到了 进程命令行里包含字符串 80 的进程。所以你看到的 root 80 kintegrityd 只是 PID=80,不是端口 80。

另外你 kill -9 2024 是在杀 PID=2024,但 ps 输出里 2024 出现在 2024 ? 这一列是"年份/启动时间",不是 PID,所以当然会提示 No such process。

正确的排查方式(立刻能定位谁占了 80)

在宿主机上执行以下任意一个(推荐第一个):

  1. 最推荐:ss

ss -ltnp | grep ':80 '

  1. 或者 lsof

lsof -iTCP:80 -sTCP:LISTEN -Pn

  1. 或者 netstat(若有)

netstat -lntp | grep ':80 '

你会看到类似:

• LISTEN 0 4096 0.0.0.0:80 ... users:(("nginx",pid=xxxx,fd=...))

• docker-proxy pid=xxxx

• apache2 / caddy / traefik / openresty

或某个容器在占用

最可能的占用者(结合你当前 docker ps)

你机器上长期运行了一个 n8n 容器(映射 5678),它本身不占 80。

但常见情况是:

  1. 宿主机 nginx/apache 已经在跑(你也 which nginx 看到了系统装了 nginx)

  2. 或者 之前有另一个容器已经映射了 80(比如老的 nginx/traefik/caddy)

  3. 或者云厂商安全组件/面板服务占了 80(阿里云环境里也常见)

解决办法(两条路,选其一)

A. 让 Docker 的 nginx 不用宿主机 80(最省事,推荐)

在 docker-compose.yml 里把 nginx 的端口从 80:80 改成别的,比如:

ports:

  • "8080:80"

然后:

docker compose up -d

以后访问就是 http://<你的服务器IP>:8080

如果你还需要 HTTPS,也可以映射 8443:443。

B. 释放宿主机的 80 端口(如果你必须用 80)

先用上面 ss/lsof 找到占用者。

常见占用者对应处理:

  1. 是宿主机 nginx

systemctl status nginx

systemctl stop nginx

systemctl disable nginx # 如果你不想它开机自启

  1. 是某个容器占了 80

docker ps --format 'table {{.Names}}\t{{.Ports}}' | grep ':80->'

找到后:

docker stop <container_name>

  1. 是 apache

systemctl stop apache2

你现在可以直接照抄做的最短路径

  1. 先定位占用者:

ss -ltnp | grep ':80 '

复制代码
2.	如果你不执着必须 80:直接改 compose 映射到 8080(最快)。
3.	如果必须 80:按 ss 输出找到进程/容器,停掉它,再 docker compose up -d。
相关推荐
阿里云云原生13 小时前
告别冗长链路!Kafka × Table Bucket 实现开放表格式零 ETL 实时入湖
云原生·kafka
SelectDB1 天前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
秋播4 天前
国内本地WSL2编译rancher源码
云原生
小猿姐5 天前
MySQL Top 10 热点问题 AI 运维实战:从内核诊断到云原生运维
mysql·云原生·aiops
阿里云云原生6 天前
深入内核:拆解 OpenTelemetry eBPF 探针如何优雅地“透视”多语言微服务?
云原生
java_cj6 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
互联网推荐官7 天前
上海软件定制开发公司推荐:从PaaS工程化路径看D-coding的技术取舍
云原生·云计算·paas·软件开发·开发经验·上海
sbjdhjd7 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
java_cj7 天前
深入kubectl create源码:从YAML到Pod的完整链路拆解
运维·云原生·容器·kubernetes
步步为营DotNet7 天前
基于.NET Aspire 实现云原生应用的高效监控与可观测性
云原生·.net·wpf