Nebula Graph Studio启动正常,但端口不通

按步骤操作
1.git clone GitHub - vesoft-inc/nebula-studio: NebulaGraph Web GUI Tools
2.docker-compose pull
3.docker-compose up -d

但连接服务时端口不通。telnet ip 7001 显示,telnet: connect to address *** : No route to host
该机器环境单独部署nginx镜像时连接服务没有问题。

请教是什么原因?

先docker-compose ps看下服务是否正常?按理来说服务正常7001端口应该就是可访问的

服务看起来正常

在当前服务部署的机器上执行 curl http://0.0.0.0:7001 正常么?

不正常。 执行curl http://0.0.0.0:7001 返回
curl: (56) Recv failure: Connection reset by peer

docker-compose exec -it nebula-web-docker_web_1 进到容器里去curl检查看看?先看看是不是排除服务的原因,再来看下网络


进容器只能看到进程在。没有curl telnet这些命令

看起来容器应该是启动正常了,在部署的服务器上 lsof -i :7001 这个端口应该也是在的吧?

看起来是正常的,奇怪,你随便起一个其他的http服务能curl么?不知道是不是也有这个问题

docker run -d --rm -p 80:80 --name nginx -v pwd/logs:/var/log/nginx nginx:alpine
在该机器起一个nginx,telent80 是ok的

这个有点诡异诶,你要不把镜像全删了再试试,或者你在自己的电脑上试过么,主要我这边复现不出来。我让其他人也看看

还是不成功

这里为什么多一个80/tcp呢?

我把compose文件里的client web import这3个容器注释掉,只启动nginx。telnet7001端口还是连不上

麻烦你把 docker-compose.yaml 中的这行 改成如下形式试试:

ports:
  - "7001:7001"

多出来的 80 端口是 nginx 容器内部 expose 的端口,并没有映射到 host 上

你要不给这个文件的这一行7001:7001加引号包裹起来试试:https://github.com/vesoft-inc/nebula-web-docker/blob/8b99ad3bbcee8a10cbd57c4d0ce9ad9489692282/docker-compose.yml#L47

这是官方的文档:https://github.com/compose-spec/compose-spec/blob/master/spec.md#ports
虽然我们之前没加引号启动也是正常的,不知道是不是系统识别关系,总之看起来服务是启动成功的端口号没映射出来

改成"7001:7001" 还是不生效。。

能把你的部署服务器信息地址描述下么?大概是什么服务器型号、什么系统、网络环境是怎样的。你要是着急的话,要不换个服务器部署试试,这个问题也是第一次碰到,要是有稳定复现的步骤就好排查多了。