【docker】failed to listen to abstract unix socket "/containerd-shim/moby/xxx/shim.sock": listen unix

场景

在做keepalived+docker容器mysql 高可用时,今天出现了如下问题,mysql容器无法重启,使用docker restart mysqlA提示如下

docker restart mysql_backup_serverb
Error response from daemon: Cannot restart container mysql_backup_serverb: failed to listen to abstract unix socket "/containerd-shim/moby/998d52ef32c4c407c0c26c4c02fca694ac8f3264698b35d06dd9cb52ff1fba6e/shim.sock": listen unix /containerd-shim/moby/998d52ef32c4c407c0c26c4c02fca694ac8f3264698b35d06dd9cb52ff1fba6e/shim.sock: bind: address already in use: unknown

Error response from daemon: Cannot restart container mysql_backup_serverb: failed to listen to abstract unix socket "/containerd-shim/moby/998d52ef32c4c407c0c26c4c02fca694ac8f3264698b35d06dd9cb52ff1fba6e/shim.sock": listen unix /containerd-shim/moby/998d52ef32c4c407c0c26c4c02fca694ac8f3264698b35d06dd9cb52ff1fba6e/shim.sock: bind: address already in use: unknown

提示端口占用,因为是mysql 端口占用第一个想到的是3306被占用,但是通过netstat -lnp | grep 3306 没有信息

 

解决

先关闭keepalived 防止虚拟IP 在本机导致mysql无法正常使用,关闭keepalived 让虚拟IP漂移到可以用的宿主机上

systemctl stop keepalived

查看进程

netstat -lnp

发现

unix  2      [ ACC ]     STREAM     LISTENING     307644974 342442/docker-conta  @/containerd-shim/moby/17a95dce2f49bf6a9760ec9b3c00b0aaeb12065c6bc5ebc850213e41df22ae62/shim.sock

很眼熟,跟报错的sock是一样的,而且可以知道了pid 是342442

再利用 kill 342442 杀死进程

重启 docker start mysqlA 就成功了。

最后启动keepalived

systemctl start keepalived

希望对大家有所帮助!!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值