news 2026/4/18 3:43:55

两个 Docker 容器如何通信?Docker 网络问题完整踩坑与解决指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
两个 Docker 容器如何通信?Docker 网络问题完整踩坑与解决指南

NebulaGraph Studio 连接失败?Docker 网络问题完整踩坑与解决指南(小白友好)

一、问题背景

我在本地使用Docker 部署 NebulaGraph 集群,同时使用Nebula Graph Studio(Web UI)进行可视化管理。

  • Nebula Graph:docker-compose启动
  • Nebula Studio:单独一个 Docker 容器
  • Studio 页面可以正常访问:
    👉http://127.0.0.1:7001

但在Studio 新建连接时,无论怎么填 IP,都会报错。


二、遇到的错误现象

1️⃣ 连接超时错误

ErrBadRequest::failed to open connection dial tcp 13.251.172.174:9669: i/o timeout

三、为什么会这样?(核心原理)
1️⃣ NebulaGraph 架构说明

NebulaGraph 并不是一个单体服务,而是由多个组件组成:

组件 作用 默认端口
nebula-studio Web 管理界面 7001
graphd 查询入口(真正连的服务) 9669
metad 元数据服务 9559
storaged 数据存储 9779

👉 Studio ≠ 数据库本身
👉 Studio 只是一个客户端,需要去连接 graphd

2️⃣ Docker 网络隔离是“真凶”

Docker 中有一个非常重要的概念:
不同 Docker network 之间的容器,默认是完全隔离的

我当时的网络结构是:

nebula-docker-compose_nebula-net ← Nebula Graph 集群
nebula-graph-studio-380_nebula-web ← Nebula Studio

📌 两个 network 不一样!
结果就是:
Studio 容器里 无法解析 graphd 容器名
nebula-graphd / nebula-docker-compose-graphd-1 都找不到
Docker DNS 返回 no such host

四、关键排查过程
1️⃣ 查看正在运行的容器

docker ps

确认:

graphd / metad / storaged 正常运行

Studio 正常运行

2️⃣ 查看 Docker 网络

docker network ls

发现:

Nebula Graph 和 Studio 在不同 network

五、正确解决方案(推荐做法)

✅ 核心思路

让 Nebula Studio 和 Nebula Graph 处在同一个 Docker network

Step 1:确认 Nebula Graph 的 network

docker network ls

例如:

nebula-docker-compose_nebula-net

Step 2:把 Studio 容器加入这个 network

docker network connect nebula-docker-compose_nebula-net nebula-graph-studio-380-web-1

nebula-graph-studio-380-web-1 是 Studio 容器名
用 docker ps 可以确认

Step 3:重启 Studio(必须)

docker restart nebula-graph-studio-380-web-1

六、Studio 中的正确连接方式

打开浏览器:

http://127.0.0.1:7001

新建连接,填写:

Host: nebula-docker-compose-graphd-1 Port: 9669 Username: root Password: nebula

📌 关键点:

Host 填的是 graphd 容器名
不是 127.0.0.1
不是公网 IP
是 Docker 内部 DNS 名称

两个 Docker 容器如何通信?

Docker 容器之间通信,优先使用:

👉 同一个 Docker network + 容器名(或 service name)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 4:01:31

Java毕设选题推荐:基于springboot的动漫周边商城的设计与实现基于springboot的二次元商品商城系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/15 19:06:55

Java数据结构*Map和 Set*

目录 1 搜索树 1.1 概念 1.2 二叉搜索树的查找 1.3二叉搜索树的插入 1.4 二叉树的删除 2 搜索 2.1 概念及场景 3 Map 3.1 关于Map.Entry 3.2 Map的常见方法说明 4 Set的说明 4.1 常见方法说明 1 搜索树 1.1 概念 二叉搜索树又称二叉排序树,它或者是一…

作者头像 李华
网站建设 2026/4/12 0:11:04

导师严选2026 TOP8 AI论文写作软件:研究生开题报告神器测评

导师严选2026 TOP8 AI论文写作软件:研究生开题报告神器测评 2026年AI论文写作软件测评:为何值得一看 随着人工智能技术的不断进步,AI写作工具在学术领域的应用日益广泛。对于研究生而言,从开题报告到论文撰写,每一个环…

作者头像 李华
网站建设 2026/4/8 21:42:52

案例证明法--内容学习

前言 将复杂证明分解成案例。 然后分别证明每一个案例 判断见过面和没有见过面 任意给定两个人,他们要么是见过面,要么没有见过面。如果团体中任意两个人都见过面,则成这个团体为俱乐部组。如果团队中任意两个人没有见过,则称为…

作者头像 李华
网站建设 2026/4/16 15:51:55

提示工程架构师揭秘:电商系统中Prompt的缓存优化方法

提示工程架构师揭秘:电商系统中Prompt的缓存优化方法 1. 引入与连接 1.1引人入胜的开场 想象一下,你正在运营一家超大型的电商平台,每天有数以百万计的用户在搜索商品。为了给用户提供最精准、最贴心的搜索结果,你使用了基于Pr…

作者头像 李华
网站建设 2026/3/13 2:45:53

Docker Compose 部署 MySQL 5.7(生产级实践方案)

前言:使用docker compose 详细部署mysql5.7版本数据库详细步骤环境:Linux Server Docker Docker Compose MySQL 版本:5.7.44 适用场景:测试 / 生产 / 学习 / 云服务器一、为什么选择 MySQL 5.7? 虽然 MySQL 8.0 已经…

作者头像 李华