中文 | English
能够容纳千亿个顶点和万亿条边,并提供毫秒级查询延时的图数据库解决方案
v1.0
分支储存了使用Docker Compose部署Nebula Graph v1.x最新开发版本的解决方案。
Docker Compose可以帮助您快速部署Nebula Graph服务。
-
已在主机中安装了Docker、Docker Compose 和 Git。
说明:
- 使用 Docker 时,如果您的用户没有 root 权限,请参见以非 root 权限用户管理 Docker。
- 为了确保这些应用正常工作,建议您安装其最新版本。
-
已在主机中启动了 Docker 服务。
-
如果您在该主机上使用 Docker Compose 部署过其它版本的 Nebula Graph,为了避免兼容性问题,请先备份需要保留的服务数据,然后删除
nebula-docker-compose/data
目录。
-
通过Git克隆
nebula-docker-compose
仓库的v1.0
分支到您的主机。$ git clone -branch v1.0 https://github.com/vesoft-inc/nebula-docker-compose.git
-
进入
nebula-docker-compose
目录。$ cd nebula-docker-compose/
-
启动所有 Nebula Graph 服务。
$ docker-compose up -d
以下返回信息表明服务已启动:
Creating nebula-docker-compose_metad2_1 ... done Creating nebula-docker-compose_metad1_1 ... done Creating nebula-docker-compose_metad0_1 ... done Creating nebula-docker-compose_storaged2_1 ... done Creating nebula-docker-compose_graphd_1 ... done Creating nebula-docker-compose_storaged0_1 ... done Creating nebula-docker-compose_storaged1_1 ... done
说明:如需了解上述服务的详情,请参见 Nebula Graph 设计与架构。
-
连接到 Nebula Graph。
Nebula-console 是 Nebula Graph 的原生命令行客户端。在当前步骤中,Docker 会按下方命令中指定的 Docker Hub 路径将 nebula-console 镜像文件下载到本地主机,并用其连接 Nebula Graph 的 graphd 服务。您也可以使用其它客户端连接Nebula Graph,例如 Nebula Graph Studio 以及其它编程语言的客户端。
$ docker run --rm -ti --network=host vesoft/nebula-console:nightly -u <user> -p <password> --addr=127.0.0.1 --port=3699
说明:Nebula Graph 默认不开启身份验证功能,此时可以省略上述命令中的
-u
和-p
选项。如需开启验证,请参见身份验证。
您可以使用如下命令查看 Nebula Graph 服务的详细信息,包括服务状态及端口号等:
$ docker-compose ps
返回结果的示例如下:
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
nebula-docker-compose_graphd_1 ./bin/nebula-graphd --flag ... Up (health: starting) 0.0.0.0:32867->13000/tcp, 0.0.0.0:32866->13002/tcp, 3369/tcp, 0.0.0.0:3699->3699/tcp
nebula-docker-compose_metad0_1 ./bin/nebula-metad --flagf ... Up (health: starting) 0.0.0.0:32865->11000/tcp, 0.0.0.0:32864->11002/tcp, 45500/tcp, 45501/tcp
nebula-docker-compose_metad1_1 ./bin/nebula-metad --flagf ... Up (health: starting) 0.0.0.0:32863->11000/tcp, 0.0.0.0:32862->11002/tcp, 45500/tcp, 45501/tcp
nebula-docker-compose_metad2_1 ./bin/nebula-metad --flagf ... Up (health: starting) 0.0.0.0:32861->11000/tcp, 0.0.0.0:32860->11002/tcp, 45500/tcp, 45501/tcp
nebula-docker-compose_storaged0_1 ./bin/nebula-storaged --fl ... Up (health: starting) 0.0.0.0:32879->12000/tcp, 0.0.0.0:32877->12002/tcp, 44500/tcp, 44501/tcp
nebula-docker-compose_storaged1_1 ./bin/nebula-storaged --fl ... Up (health: starting) 0.0.0.0:32876->12000/tcp, 0.0.0.0:32872->12002/tcp, 44500/tcp, 44501/tcp
nebula-docker-compose_storaged2_1 ./bin/nebula-storaged --fl ... Up (health: starting) 0.0.0.0:32873->12000/tcp, 0.0.0.0:32870->12002/tcp, 44500/tcp, 44501/tcp
说明: Nebula Graph 默认通过 TCP3699 端口向客户端提供服务,您可以在网络配置中自定义端口号。
Nebula Graph 的服务数据和日志被持久化地保存在主机的 nebula-docker-compose/data
和 nebula-docker-compose/logs
目录中。
目录结构如下所示:
nebula-docker-compose/
|-- docker-compose.yaml
|-- data
| |- meta0
| |- meta1
| |- meta2
| |- storage0
| |- storage1
| `- storage2
`-- logs
|- meta0
|- meta1
|- meta2
|- storage0
|- storage1
|- storage2
`- graph
您可以通过以下命令停止 Nebula Graph 服务:
$ docker-compose down -v
以下返回结果表明您已成功停止 Nebula Graph 服务:
Stopping nebula-docker-compose_storaged1_1 ... done
Stopping nebula-docker-compose_storaged0_1 ... done
Stopping nebula-docker-compose_graphd_1 ... done
Stopping nebula-docker-compose_storaged2_1 ... done
Stopping nebula-docker-compose_metad0_1 ... done
Stopping nebula-docker-compose_metad1_1 ... done
Stopping nebula-docker-compose_metad2_1 ... done
Removing nebula-docker-compose_storaged1_1 ... done
Removing nebula-docker-compose_storaged0_1 ... done
Removing nebula-docker-compose_graphd_1 ... done
Removing nebula-docker-compose_storaged2_1 ... done
Removing nebula-docker-compose_metad0_1 ... done
Removing nebula-docker-compose_metad1_1 ... done
Removing nebula-docker-compose_metad2_1 ... done
Removing network nebula-docker-compose_nebula-net
在目录nebula-docker-compose
内执行命令docker-compose pull
,可以更新Graph服务、Storage服务和Meta服务的镜像。
您可能遇到如下错误:
ERROR: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
以上错误表示您已达到Docker Hub的速率限制。解决方案请参见Understanding Docker Hub Rate Limiting。
执行如下命令可以更新Nebula Console客户端镜像。
docker pull vesoft/nebula-console:nightly
更新Nebula Graph的Docker镜像并重启服务:
-
在目录
nebula-docker-compose
内,执行命令docker-compose pull
更新Nebula Graph的Docker镜像。 -
执行命令
docker-compose down
停止Nebula Graph服务。 -
执行命令
docker-compose up -d
启动Nebula Graph服务。