[特殊字符] VMware虚拟机挂起后Docker容器MySQL无法连接的解决方案

📌 问题描述

在使用VMware虚拟机运行CentOS系统,并在其中部署了Docker容器(如MySQL和Nacos)时,发现每次将虚拟机挂起并恢复后,Docker容器中的MySQL服务无法连接。即使重启Docker服务或容器,问题仍然存在,只有重启整个虚拟机才能暂时解决。

🔍 问题分析

此问题的根本原因在于NetworkManager服务在虚拟机挂起和恢复过程中对Docker的网络接口(如docker0)进行了管理,导致Docker网络配置异常。具体表现为:

  • docker0网桥被NetworkManager接管,状态变为unmanaged

  • Docker容器之间的网络通信中断,MySQL等服务无法连接。

✅ 解决方案

为防止NetworkManager管理Docker的网络接口,需要修改NetworkManager的配置文件,使其忽略Docker相关的网络设备。

1. 修改NetworkManager配置文件

编辑/etc/NetworkManager/NetworkManager.conf文件,在文件末尾添加以下内容:

[keyfile]
unmanaged-devices=interface-name:docker0;interface-name:br-*;interface-name:veth*;interface-name:vmnet*;interface-name:vboxnet*

上述配置指示NetworkManager忽略以docker0br-vethvmnetvboxnet开头的网络接口,防止其对Docker网络进行干预。

2. 重启NetworkManager服务

使配置生效,需要重启NetworkManager服务:

sudo systemctl restart NetworkManager

3. 重启Docker服务

随后,重启Docker服务以重新初始化Docker网络:

sudo systemctl restart docker

4. 验证Docker网络状态

使用以下命令检查docker0网桥的状态,确保其正常运行:

ip addr show docker0

输出中应包含docker0的IP地址和状态信息,表示网桥已成功恢复。

📝 总结

通过上述配置,NetworkManager将不再管理Docker的网络接口,从而避免了虚拟机挂起和恢复后Docker网络异常的问题。此方法适用于在VMware虚拟机中运行Docker容器的场景,确保容器间的网络通信稳定可靠。


希望这篇文章能帮助您解决在VMware虚拟机中使用Docker时遇到的网络问题。如果您有其他相关问题,欢迎在评论区留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值