当前位置: 首页 > news >正文

[特殊字符] 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时遇到的网络问题。如果您有其他相关问题,欢迎在评论区留言讨论。

相关文章:

  • BitMart合约交易体验 BitMart滑点全赔的底层逻辑
  • Soundness Gitpod 部署教程
  • MVCC:数据库并发控制的利器
  • 深度理解指针(2)
  • Redis的Pipeline和Lua脚本适用场景是什么?使用时需要注意什么?
  • 计算机组成与体系结构:缓存设计概述(Cache Design Overview)
  • Eslint和perrier的作用
  • contains方法的实现对比
  • leetcode二叉树相关题目复习(C语言版)
  • PDF Base64格式字符串转换为PDF文件临时文件
  • 具身智能梳理以及展望
  • 读入csv文件写入MySQL
  • 《AI大模型应知应会100篇》第64篇:构建你的第一个大模型 Chatbot
  • 鸿蒙OSUniApp 开发实时聊天页面的最佳实践与实现#三方框架 #Uniapp
  • FFmpeg 与 C++ 构建音视频处理全链路实战(五)—— 音视频编码与封装
  • 【MySQL 基础篇】深入解析MySQL逻辑架构与查询执行流程
  • 苹果处理器“仿生“命名背后的营销策略与技术创新
  • 最短路和拓扑排序知识点
  • 零基础学Java——第十一章:实战项目 - 桌面应用开发(JavaFX入门)
  • How Sam‘s Club nudge customers into buying more
  • 河南省委常委会会议:坚持以案为鉴,深刻汲取教训
  • 免签国+1,中乌(兹别克斯坦)互免签证协定6月生效
  • 多条跨境铁路加速推进,谁是下一个“超级枢纽”?
  • 我的科学观|梅彦昌:科技创新关键在于能否跑得快,而不是有没有钱
  • 优化营商环境,服务上海“五个中心”建设,北外滩有何举措?
  • 外交部亚洲司司长刘劲松会见印度驻华大使罗国栋