项目场景:
重启docker中的容器时,遇到的问题
问题描述
启动docker容器时出现以下错误:
Error response from daemon: Cannot restart container f76f82ca0d60: driver failed programming external connectivity on endpoint mysql-test (09319972c18c069ad5d268ae1d17db80aaf3d4663f2fa6ea7af8c789e5f6beb8): Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use
原因分析:
侦听3306的端口被使用了,需要kill -9 pid或者关闭mysql的服务
解决方案:
首先查看mysql的进程:ps -ef|grep 3306
情况一
这个命令使用两次,如果连续两次的pid都在变化,那就无法使用kill命令,无法杀死进程
这时需要关闭mysql的服务:systemctl stop mysqld.service
然后重新启动docker和容器
[root@raw /]# systemctl restart docker
[root@raw /]# docker restart $(docker ps -aq)
情况二
如果两次查看mysql的进程时,pid没有变化,那就可以使用kill命令
命令格式如下:kill -9 pid
再去重新启动docker和容器
总结
因为我个人遇到的是第一种,所以直接关闭了mysql的服务再重启启动容器。