如何卸载占用8081端口的nginx?删除docker容器镜像后端口仍被占用如何解决
8081端口残留占用问题解决步骤
第一步:确认实际占用端口的进程
根据你当前使用的操作系统执行对应命令,获取占用8081端口的进程PID和进程名称:
- Linux/macOS 终端执行:
sudo lsof -i :8081 # 或 sudo ss -tulpn | grep 8081 - Windows 管理员权限终端执行:
netstat -ano | findstr :8081
第二步:针对Docker残留问题处理
你之前通过Docker启动Nginx,大概率是Docker网络栈残留导致端口未释放,按以下顺序操作即可:
- 确认是否有遗漏的关联容器:
执行docker ps -a查看所有容器列表,如果还存在server容器或其他绑定8081端口的容器,执行docker rm -f <容器ID>强制删除。 - 清理Docker残留网络:
执行docker network prune -f清理所有未被使用的Docker虚拟网络,释放残留的端口绑定规则。 - 重启Docker服务:
- Linux系统执行:
sudo systemctl restart docker - macOS/Windows系统直接在Docker Desktop客户端点击重启按钮
重启后Docker会自动释放所有异常残留的端口占用。
- Linux系统执行:
第三步:非Docker进程占用的处理
如果第一步查询到的进程是本地直接安装的Nginx而非Docker相关进程,按系统执行卸载或强制杀进程即可:
- 强制杀死占用进程:
- Linux/macOS执行:
sudo kill -9 <第一步查到的进程PID> - Windows执行:
taskkill /F /PID <第一步查到的进程PID>
- Linux/macOS执行:
- 卸载本地Nginx:
- Debian/Ubuntu系统:
sudo apt remove -y nginx - CentOS/RHEL系统:
sudo yum remove -y nginx - macOS Homebrew安装的Nginx:
brew uninstall nginx
- Debian/Ubuntu系统:
特殊场景处理(WSL2环境)
如果你是在Windows的WSL2子系统中使用Docker,还可能是WSL和Windows的端口映射残留,执行wsl --shutdown关闭WSL后重新打开即可解决。
验证结果
操作完成后重新执行第一步的端口查询命令,确认8081端口无进程占用即可。
内容的提问来源于stack exchange,提问作者0x55b1E06FF
相关产品推荐
相关产品推荐

