一、问题背景:
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后,再查询该容器是否存在:
可以看出,不存在了。
回到开头的试图运行容器,成功。