docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker端口占用

Docker端口占用不再重启电脑了(一招根治所有端口冲突bug)

作者:南汁bbj

Docker容器端口冲突是部署中的常见问题,通常因指定主机端口被其他进程或容器占用导致,这篇文章主要介绍了Docker端口占用不再重启电脑的相关资料,可以一招根治所有端口冲突bug,需要的朋友可以参考下

前言

程序员最破防的瞬间,从来不是代码报错、逻辑写崩。

而是代码明明没毛病,环境先给你摆烂

辛辛苦苦写完功能,自信满满启动Docker容器,结果控制台直接红屏暴击:

Bind for 0\.0\.0\.0:xxx failed: port is already allocated

瞬间心态炸裂:又是端口占用?!这端口是被谁偷偷锁死了啊?

相信90%的开发者的祖传解法都是:改端口、重启Docker、重启电脑

主打一个“暴力玄学”,能不能全靠运气!

但说实话,这操作纯纯掩耳盗铃!本次凑合解决,下次启动照样报错,纯属无效修bug、浪费摸鱼时间!

今天不整虚的!手把手教大家精准揪出占用端口的程序、一键杀进程释端口、从根上杜绝Docker端口冲突

看完这篇,彻底告别端口焦虑,再也不用为环境问题瞎折腾!

一、端口被占不用瞎猜!精准定位“罪魁祸首”

端口冲突最让人无语的点:完全不知道哪个“后台老六”偷偷霸占了端口!

不用瞎关软件、不用乱改配置、不用盲猜!全平台通用命令,精准定位元凶,一键拿捏,新手也能零失误操作。

Windows系统专属操作

打开CMD或者PowerShell,输入查询命令,把端口号换成你报错的端口就行:

netstat -ano | findstr "8080"

执行命令后,输出结果末尾的数字就是PID进程ID,也就是霸占你端口的罪魁祸首!

定位完成,直接强制送走这个顽固进程,不给它任何反扑机会:

taskkill /F /PID 进程ID

干净利落、无残留,端口直接满血复活!

Linux / Mac系统专属操作

Mac、Linux用户直接抄作业,两条命令任选其一,高效又好用:

# 方式1:简洁查询
lsof -i :端口号

# 方式2:详细查询
netstat -tulpn | grep 端口号

找到对应进程ID后,直接硬核终结,专治各种端口赖着不走的毛病:

kill -9 进程ID

简单粗暴、一步到位,端口占用问题直接搞定!

二、揭秘!Docker端口冲突的4个幕后黑手

很多小伙伴都疑惑:我明明没开新程序,端口怎么莫名其妙被占了?

实话告诉你:Docker端口冲突,90%都是Docker自己的锅!不是外部程序抢占,是它自己偷偷堆垃圾。

这4个幕后黑手,就是端口冲突的罪魁祸首:

1. 残留容器搞事情:容器只停止不删除,默默潜伏在后台,死死霸占端口不撒手

2. 固定端口埋大坑:手动写死宿主机端口,多项目切换开发,容器端口直接撞车内卷

3. 网络模式乱套:桥接、主机网络模式随意混用,端口权限紊乱,频繁出现莫名占用

4. 本地中间件抢占:本地MySQL、Redis、Nginx等服务,和容器端口重复冲突

三、懒人终极解法!一键清空所有端口占用

不想一个个排查进程、手动杀进程?懒人专属一键清坑套餐来了!

专治Docker残留垃圾、端口顽固占用,有手就会!

1. 手动关停删除异常容器

# 停止运行中的异常容器
docker stop 容器名/容器ID

# 彻底删除容器,释放端口
docker rm 容器名/容器ID

2. 神器命令:批量清理所有停用容器

一个个删容器太费时间?这行神器命令,直接批量清空所有停用的垃圾容器,懒人狂喜!

docker container prune

一键清理所有后台残留垃圾,端口瞬间释放,开发环境直接清爽起飞!

3. 终极兜底:重启Docker服务

遇到极端诡异问题,前面的方法都没用?直接祭出终极兜底方案,解决99%的Docker环境玄学bug:

# Linux系统
systemctl restart docker

Windows用户更省心,重启Docker Desktop即可,一键兜底、百试百灵!

四、告别反复踩坑!永久规避端口冲突的神仙技巧

临时解决只能应付一时,想要彻底摆脱端口报错,一定要养成这几个好习惯!

从此告别反复踩坑,端口冲突再也不找你麻烦!

1. 拒绝写死固定端口:开发环境优先随机端口映射,杜绝多项目端口撞车,不用反复改配置瞎折腾

2. 规范端口分区:容器服务统一使用30000+高端口,3306、6379等经典端口留给本地中间件,互不打扰

3. 必用****Docker Compose:统一编排管理项目,端口、网络、依赖一键配置,告别手动启停容器的混乱场面

4. 慎用主机网络模式\-\-net=host会直接绑定宿主机端口,极易引发冲突,开发环境尽量规避

五、开发常备!Docker端口问题万能命令合集

特意整理了端口排错万能命令清单,日常开发直接抄,建议永久收藏,随用随查!

# 查看当前运行的所有容器
docker ps

# 查看所有容器(包含已停止的残留容器)
docker ps -a

# 一键强制清理所有停用容器,释放端口
docker container prune -f

最后总结

1. 端口占用别再盲目重启电脑,查PID杀进程,精准高效解决问题;

2. Docker端口冲突核心元凶是残留容器,定期清理就能避开大半坑;

3. 规范端口使用+Compose统一编排,从根源根治端口bug;

4. 全套命令开箱即用,新手老手都能轻松拿捏开发环境问题!

到此这篇关于Docker端口占用的文章就介绍到这了,更多相关Docker端口占用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文