You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac OS下Docker容器间通信异常问题求助

Docker Compose容器间DNS解析不稳定问题排查与解决

问题现象

  • 容器位于crypto-gateway bridge网络,web容器无法稳定解析同网络内的其他容器(如crypto-gateway-db),解析成功的容器列表随Compose重启随机变化,多次重启后才恢复正常
  • 4-5个月前无此问题,近期出现异常

环境信息

  • Mac OS Ventura 13.5 (M2 MacBook Pro)
  • Docker Desktop 4.21.1
  • Docker Client: 24.0.2,Docker Server: 24.0.2-38-g8e70a1b23e
  • 正在使用Tunnelblick VPN

调试步骤

  1. 确认容器网络归属
    进入web容器,检查是否加入了crypto-gateway网络:

    docker exec -it crypto-gateway-web ip addr
    

    需确认存在对应网络的网卡(通常命名为eth1或类似)

  2. 检查容器DNS配置
    在web容器内查看DNS服务器设置:

    docker exec -it crypto-gateway-web cat /etc/resolv.conf
    

    正常应指向Docker内部DNS服务127.0.0.11,若指向VPN的DNS,说明VPN干扰了Docker网络

  3. 测试Docker内部DNS解析
    直接用Docker DNS服务测试目标容器:

    docker exec -it crypto-gateway-web nslookup crypto-gateway-db 127.0.0.11
    
    • 解析失败:Docker内部DNS服务异常
    • 解析成功:容器内DNS缓存或网络栈存在问题
  4. 查看Docker日志
    在Docker Desktop中查看daemon日志:点击右上角Docker图标 → Troubleshoot → Show Logs,重点搜索dns、network、bridge相关报错

解决方案

1. 排除VPN干扰

  • 临时关闭VPN,测试容器间连接是否恢复。若恢复,说明VPN路由/DNS覆盖了Docker设置
  • 配置Tunnelblick绕过Docker子网流量:
    打开VPN配置编辑页面 → Advanced选项卡,添加Docker子网到Do Not Route列表(可通过docker network inspect crypto-gateway获取具体子网,通常为172.xx.0.0/16)

2. 重置Docker网络

清理异常的网络配置:

# 停止所有容器
docker stop $(docker ps -aq)
# 清理无用网络、容器、卷
docker network prune -f
docker system prune -f --volumes
# 重启Docker Desktop

之后重新启动Compose项目

3. 强制指定容器DNS

在docker-compose.yml的web服务中添加DNS配置,强制使用Docker内部DNS:

web:
  # 原有配置不变
  dns:
    - 127.0.0.11
    - 8.8.8.8

4. 降级Docker Desktop版本

问题可能源于新版本对M2芯片的适配问题,尝试降级到之前稳定运行的版本(如4.18.x系列)

5. 优化容器启动顺序

添加依赖关系确保服务就绪后再启动web容器:

web:
  # 原有配置不变
  depends_on:
    - mysql
    - vault
    - rabbitmq

若需要等待服务完全就绪,可在web容器启动脚本中加入wait-for-it等工具的等待逻辑(如./wait-for-it.sh crypto-gateway-db:3306 -- npm start)

补充排查点

  • 关闭Mac系统设置中Wi-Fi -> Advanced -> DNS的Search domains,避免本地DNS干扰
  • 检查Mac内置防火墙是否阻止了Docker容器间的通信

内容的提问来源于stack exchange,提问作者ZhukV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 03:56:14