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

虚拟机挂起,重启后主机连接不上虚拟机docker中的mysql?(docker网络状态假死)

在docker中创建了一个mysql容器,docker是在一个centos的vm虚拟机里的,把虚拟机挂起,第二天打开电脑开启虚拟机,主机却连接不到docker中创建的mysql了,这是什么情况?

虚拟机挂起(suspend)后再恢复,Docker 容器网络状态“假死”,导致宿主机(或外部)连不上 MySQL。核心原因不是 MySQL 挂了,而是网络栈没恢复好


✅ 现象总结

  • VM 挂起 → 第二天恢复 → 主机连不上 Docker MySQL
  • 容器可能还在运行,但端口映射失效或网络断连

🔍 根本原因

虚拟机挂起(suspend)会冻结整个系统状态,包括:

  • 网络接口(eth0、docker0、veth pair)
  • NAT 表、iptables 规则
  • Docker 的网络命名空间

恢复后,Docker 的网络栈没有重新初始化,导致:

  • 端口映射(-p 3306:3306)失效
  • 容器 IP 不可达
  • 主机访问 VM_IP:3306 超时

✅ 解决方案(任选其一)

✅ 方法 1:重启 Docker 服务(推荐)

在 VM 里执行:

sudo systemctl restart docker

这会重新初始化 Docker 的网络栈,容器会自动重启(如果你用了 --restart=always),然后端口映射就恢复了。

✅ 方法 2:重启容器

如果你不想重启整个 Docker,可以只重启容器:

docker restart <mysql_container_name>
✅ 方法 3:避免挂起,改用关机

虚拟机挂起容易出这种网络问题,建议用正常关机保存快照代替挂起。


🔍 验证恢复

在主机上执行:

telnet <VM_IP> 3306

mysql -h <VM_IP> -P 3306 -u root -p

能连上就说明恢复了。


✅ 建议

  • 给 MySQL 容器加 --restart=always,防止意外停掉
  • 如果频繁挂起 VM,考虑用 Host 网络模式--network host),减少 NAT 层:
    docker run --network host -e MYSQL_ROOT_PASSWORD=xxx mysql:8
    

✅ 总结一句话

VM 挂起后 Docker 网络“假死”,重启 Docker 或容器即可恢复。

http://www.dtcms.com/a/529327.html

相关文章:

  • 2018年网站开发语言wordpress免费图床插件
  • PyTorch 深度学习基础:Dataset 与 DataLoader 详解
  • 2.4寸SPI串口ILI9341芯片彩色LCD驱动
  • 绍兴企业做网站浙江建设信息港电工证查询
  • 【系统分析师】高分论文:论需求分析及其应用(ERP 财务管控项目)
  • 数据结构(9)
  • 怎么做点播网站唐山企业做网站
  • 网站建设迅雷wordpress 简洁文章主题
  • 成都网站建设好多钱中英版网站怎么做
  • wait和notify机制详解
  • 网站开发文档需求撰写word营销型网站建站系统
  • wordpress order插件seo实训报告
  • 南宁建设厅网站是什么品牌网络市场环境调研报告
  • 做外贸需要做网站吗电子商务网站建设读书笔记
  • Linux17 进程间的通信 消息队列
  • 从WSL安装到初始化buildozer全过程~
  • 点击网站排名西南网架公司
  • 专做宠物的网站注册一个5000万空壳公司要多少钱
  • 长春火车站进站需要核酸检测吗豆瓣 wordpress
  • 【Java 序列化 (Serialization)】
  • STM32H743-ARM例程30-Modbus
  • ps网站导航怎么做wordpress 主题详解
  • 网站建设全网推广小程序网站制作app排行榜前十名
  • 正规网站建设多少费用深圳品牌设计公司哪家好
  • Product Hunt 每日热榜 | 2025-10-25
  • Java实用工具库深度解析:从生产力到艺术性
  • 全网营销网站建设特点南山出名的互联网公司
  • 计算机组成原理C,存储器容量计算地址线和数据线
  • 连云港建设局官方网站模板大全免费
  • 建设项目经济评价网站青岛公司网站建设价格