docker: exposing port TCP 0.0.0.0:3306-0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage问题解决

文章讲述了在Docker部署MySQL过程中遇到的TCP连接问题,介绍了尝试终止监听进程的方法,包括使用`netstat`找到进程号并以管理员权限kill,以及删除有问题的容器。最终成功重启容器并解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题背景:

Docker部署MySQL,试图运行mysql容器时。

问题如下:

二、解决方法:

根据报错,我们需要尝试终止TCP:0.0.0.0:3306。

网上搜寻一些kill掉tcp的方法,以下两种不可用:

1.踩坑

(1)

taskkill /pid 3306 -t -f

不可用原因 :TCP:0.0.0.0:3306真正的listening进程并不对应3306

(2)

Get-Process kingbase

网上有一个博主使用该语句找到了对应的listening进程 ,不失为一种尝试方法。但我失败了,如图:

2.可行方案

(1)运行如下语句,找到对应的listening进程号,可以看到我的是7648:

netstat -nao|findstr 3306 

(2)kill掉它,可以发现用Powershell不行,原因是权限不够。所以用管理员模式kill:

(3)重新试图运行mysql容器,报错如下:

根据报错,需要remove container "f559a5e311760a45e65c68c775ca8916c3af91e91356e57353e98fdba528a352"。

使用如下语句查询其ID:

docker ps -a

 得到ID,stop该容器:

docker stop f559a5e31176

stop后,再查询该容器是否存在: 

可以看出,不存在了。

回到开头的试图运行容器,成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值