Token导航 LogoToken导航TokenDH.com
Docker Compose DNS Bug Case logo
运维云端未说明官方级别未说明来源级核验

Docker Compose DNS Bug Case

MCP Server

解决Docker Desktop在自定义桥接网络中服务名称DNS解析失败的问题,适用于容器化开发环境。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
开发工具Docker云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

NelCapeTown

提供方

NelCapeTown

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Docker桌面DNS解析错误-复制案例

解决方案

我卸载了Docker Desktop,现在只需在我的Ubuntu 24.04 WSL2中直接运行Docker,一切正常。

问题摘要

Docker Desktop(2024年12月更新的版本)无法解析自定义网桥网络上的服务主机名,尽管服务位于同一网络上,但仍返回“地址错误”错误。

预期行为

同一Docker网络上的容器应该能够通过服务名称相互解析:

# From n8n container
ping postgres  # Should resolve and respond

实际行为

DNS解析完全失败:

# From n8n container
ping postgres
# Returns: "ping: bad address 'postgres'"

环境

  • 操作系统:Linux(基于Ubuntu/Debian)
  • Docker 桌面版:2024年12月更新的版本
  • Docker Compose:v2.x

繁殖步骤

  1. 克隆此存储库
  2. docker compose up -d
  3. 等待所有服务都健康
  4. 执行到n8n容器中: docker compose exec dns-test-n8n sh
  5. 尝试ping postgres: ping dns-test-postgres
  6. 观察DNS故障

什么有效

  • 容器可以通过IP地址相互ping
  • 容器可以通过硬编码的IP进行通信
  • Docker内置的网桥网络运行良好
  • 使用静态IP+extra_hosts的自定义网络解决方法有效

什么不起作用

  • 标准服务名称解析(例如“postgres”、“mcp”)
  • 具有自动DNS的自定义网桥网络
  • Docker Compose应该提供的服务发现

建筑

这是一个最小的n8n+PostgreSQL设置,演示了这个问题:

┌─────────────┐
│  dns-test-  │  Tries to connect to "dns-test-postgres"
│    n8n      │  ❌ DNS resolution fails
└──────┬──────┘
       │
       ▼ (should connect here)
┌─────────────┐
│  dns-test-  │  IP: Assigned by Docker
│  postgres   │  Hostname: Should resolve but doesn't
└─────────────┘

此回购中的文件

  • docker-compose.yml -最小复制设置(无变通方法)
  • .env.example -所需的环境变量
  • README.md -此文件
  • WORKAROUND.md -我们不得不实施的黑客解决方案

Docker桌面团队

这是一个干净的复制箱。我们已经确认这适用于静态IP extra_hosts 条目,但这不是一个合适的解决方案。我们需要正常的DNS解析才能按照记录工作。

我们的生产解决方法(在单独的私有仓库中)使用:

  • 自定义网络上的静态IP
  • 手册 extra_hosts docker-compose.yml中的条目
  • 这很脆弱,违背了服务发现的目的

联系

如果您需要更多信息或有疑问,请在此存储库中打开问题。

相关问题

这似乎与2024年12月中旬的Docker Desktop更新有关,该更新影响了自定义网桥网络上的DNS解析。

目录标签

目录标签

开发工具Docker云端部署本地部署DNS解析容器网络故障修复

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP