使用Docker Compose部署Nebula Graph
主机上安装如下应用程序。
如果使用非root用户部署Nebula Graph,请授权该用户Docker相关的权限。详细信息,请参见Manage Docker as a non-root user。
启动主机上的Docker服务。
如果已经通过Docker Compose在主机上部署了另一个版本的Nebula Graph,为避免兼容性问题,需要删除目录
nebula-docker-compose/data
。
部署和连接Nebula Graph
通过Git克隆
nebula-docker-compose
仓库的2.6.0
分支到主机。Danger
master
分支包含最新的未测试代码。请不要在生产环境使用此版本。切换至目录
nebula-docker-compose
。$ cd nebula-docker-compose/
执行如下命令启动Nebula Graph服务。
Note
如果长期未更新镜像,请先更新Nebula Graph镜像和。
[nebula-docker-compose]$ docker-compose up -d
Creating nebula-docker-compose_metad0_1 ... done
Creating nebula-docker-compose_metad2_1 ... done
Creating nebula-docker-compose_metad1_1 ... done
Creating nebula-docker-compose_graphd2_1 ... done
Creating nebula-docker-compose_graphd_1 ... done
Creating nebula-docker-compose_graphd1_1 ... done
Creating nebula-docker-compose_storaged0_1 ... done
Creating nebula-docker-compose_storaged2_1 ... done
Creating nebula-docker-compose_storaged1_1 ... done
Note
上述服务的更多信息,请参见架构总览。
执行两次
exit
可以退出容器。
执行命令docker-compose ps
可以列出Nebula Graph服务的状态和端口。
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
3699/tcp, 0.0.0.0:33298->9669/tcp
nebula-docker-compose_graphd2_1 ./bin/nebula-graphd --flag ... Up (health: starting) 13000/tcp, 13002/tcp, 0.0.0.0:33285->19669/tcp, 0.0.0.0:33284->19670/tcp,
3699/tcp, 0.0.0.0:33286->9669/tcp
nebula-docker-compose_graphd_1 ./bin/nebula-graphd --flag ... Up (health: starting) 13000/tcp, 13002/tcp, 0.0.0.0:33288->19669/tcp, 0.0.0.0:33287->19670/tcp,
3699/tcp, 0.0.0.0:9669->9669/tcp
nebula-docker-compose_metad0_1 ./bin/nebula-metad --flagf ... Up (health: starting) 11000/tcp, 11002/tcp, 0.0.0.0:33276->19559/tcp, 0.0.0.0:33275->19560/tcp,
45500/tcp, 45501/tcp, 0.0.0.0:33278->9559/tcp
nebula-docker-compose_metad1_1 ./bin/nebula-metad --flagf ... Up (health: starting) 11000/tcp, 11002/tcp, 0.0.0.0:33279->19559/tcp, 0.0.0.0:33277->19560/tcp,
45500/tcp, 45501/tcp, 0.0.0.0:33281->9559/tcp
nebula-docker-compose_metad2_1 ./bin/nebula-metad --flagf ... Up (health: starting) 11000/tcp, 11002/tcp, 0.0.0.0:33282->19559/tcp, 0.0.0.0:33280->19560/tcp,
45500/tcp, 45501/tcp, 0.0.0.0:33283->9559/tcp
nebula-docker-compose_storaged0_1 ./bin/nebula-storaged --fl ... Up (health: starting) 12000/tcp, 12002/tcp, 0.0.0.0:33290->19779/tcp, 0.0.0.0:33289->19780/tcp,
44500/tcp, 44501/tcp, 0.0.0.0:33294->9779/tcp
nebula-docker-compose_storaged1_1 ./bin/nebula-storaged --fl ... Up (health: starting) 12000/tcp, 12002/tcp, 0.0.0.0:33296->19779/tcp, 0.0.0.0:33292->19780/tcp,
nebula-docker-compose_storaged2_1 ./bin/nebula-storaged --fl ... Up (health: starting) 12000/tcp, 12002/tcp, 0.0.0.0:33297->19779/tcp, 0.0.0.0:33293->19780/tcp,
44500/tcp, 44501/tcp, 0.0.0.0:33300->9779/tcp
Nebula Graph默认使用9669
端口为客户端提供服务,如果需要修改端口,请修改目录nebula-docker-compose
内的文件docker-compose.yaml
,然后重启Nebula Graph服务。
查看Nebula Graph服务的数据和日志
Nebula Graph的所有数据和日志都持久化存储在nebula-docker-compose/data
和nebula-docker-compose/logs
目录中。
目录的结构如下:
用户可以执行如下命令停止Nebula Graph服务:
$ docker-compose down
如果返回如下信息,表示已经成功停止服务。
Stopping nebula-docker-compose_graphd2_1 ... done
Stopping nebula-docker-compose_graphd1_1 ... done
Stopping nebula-docker-compose_graphd_1 ... done
Stopping nebula-docker-compose_storaged1_1 ... done
Stopping nebula-docker-compose_storaged2_1 ... done
Stopping nebula-docker-compose_storaged0_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_graphd2_1 ... done
Removing nebula-docker-compose_graphd1_1 ... done
Removing nebula-docker-compose_graphd_1 ... done
Removing nebula-docker-compose_storaged1_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
Danger
命令docker-compose down -v
的参数-v
将会删除所有本地的数据。如果使用的是nightly版本,并且有一些兼容性问题,请尝试这个命令。
修改配置
Docker Compose部署的Nebula Graph,配置文件位置为nebula-docker-compose/docker-compose.yaml
,修改该文件内的配置并重启服务即可使新配置生效。
具体的配置说明请参见。
在目录nebula-docker-compose
内修改文件docker-compose.yaml
,将对应服务的ports
设置为固定映射,例如:
graphd:
image: vesoft/nebula-graphd:v2.6.1
...
ports:
- 9669:9669
- 19669
- 19670
如何升级/更新Nebula Graph服务的Docker镜像?
在文件
nebula-docker-compose/docker-compose.yaml
中,找到所有服务的image
并修改其值为相应的镜像版本。在目录
nebula-docker-compose
内执行命令docker-compose pull
,更新Graph服务、Storage服务和Meta服务的镜像。Note
执行
docker-compose pull
命令更新服务镜像前,确保已停止Nebula Graph。执行命令
docker-compose up -d
启动Nebula Graph服务。通过Nebula Console连接Nebula Graph后,分别执行命令
SHOW HOSTS GRAPH
、SHOW HOSTS STORAGE
、SHOW HOSTS 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的速率限制。解决方案请参见。
如何更新Nebula Console?
执行如下命令可以更新Nebula Console客户端镜像。
在 Nebula Graph 2.0.0-RC 版本,默认端口从3699
改为9669
。请使用9669
端口连接,或修改配置文件docker-compose.yaml
内的端口。
为什么更新nebula-docker-compose仓库后,无法访问数据?(2021年01月04日)
如果在2021年01月04日后更新过nebula-docker-compose仓库,而且之前已经有数据,请修改文件docker-compose.yaml
,将端口修改为之前使用的端口。详情请参见修改默认端口。
2021年01月27日修改了数据格式,无法兼容之前的数据,请执行命令删除所有本地数据。
相关视频
用户也可以查看视频快速部署Nebula Graph 2.0。
使用 docker compose 部署 Nebula Graph 2.0 和 Web Studio(18分10秒)
最后更新: November 4, 2021