两个 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️⃣ 连接超时错误

text 复制代码
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)

相关推荐
箓维18 分钟前
TCP Socket的进阶实现
网络·笔记·tcp/ip
是枚小菜鸡儿吖26 分钟前
Home Assistant跨品牌智能家居教程:Docker部署、米家接入、vivo桥接与远程访问
docker·容器·智能家居
小羊没烦恼!1 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
小Ti客栈1 小时前
Netty 零拷贝原理与实战
运维·服务器·网络
国科安芯1 小时前
商业光学遥感载荷焦平面供电链的低噪声稳压器研究综述——以国科安芯ASP7A84AS型3A低压差线性稳压器为器件级参照
大数据·网络·嵌入式硬件·平面·卫星·商业航天·抗辐射
静以修身zzz1 小时前
计算云服务
运维·网络·云计算
星恒随风1 小时前
Linux网络编程:应用层协议究竟是什么?从网络计算器到TCP Socket抽象基类完整实现
linux·网络·笔记·tcp/ip
万联WANFLOW2 小时前
异地组网速度忽快忽慢到底怎么回事?直连与中继的判断方法和处理步骤
运维·网络·网络协议·p2p
jimmyleeee2 小时前
Agent安全之六:(ASI06)记忆与上下文投毒——当 AI 把“昨天的错误”当成“今天的真理”
网络·人工智能·安全
辰辰观影2 小时前
字幕导入教程:外挂字幕一键加载方法
网络·经验分享