nebulagraph使用docker compose后连接
docker exec -it nebula-docker-compose-master-console-1 sh -c "sleep 3; /usr/local/bin/nebula-console -u root -p nebula --address=graphd --port=9669"
NebulaGraph 是一款开源的分布式图数据库,使用 Docker 可以方便地快速部署和体验。以下是详细的安装步骤和命令说明。
前置条件
-
已安装 Docker 引擎(Docker 19.03.0 或更高版本)
-
已安装 Docker Compose(推荐)
-
系统资源:至少 4GB 内存
安装步骤
方法一:使用 Docker Compose(推荐)
-
创建项目目录
mkdir nebula-docker && cd nebula-docker
-
下载 docker-compose.yml 文件
wget https://github.com/vesoft-inc/nebula-docker-compose/archive/master.zip unzip master.zip cd nebula-docker-compose-master
或者直接克隆仓库:
git clone https://github.com/vesoft-inc/nebula-docker-compose.git cd nebula-docker-compose
-
启动 NebulaGraph 服务
docker-compose up -d
这个命令会启动以下服务:
-
3 个 NebulaGraph 存储服务(storaged)
-
3 个 NebulaGraph 元数据服务(metad)
-
1 个 NebulaGraph 图服务(graphd)
-
1 个 NebulaGraph 控制台(console)
-
-
验证服务状态
docker-compose ps
应该看到类似下面的输出,所有服务状态应为 "Up":
Name Command State Ports ------------------------------------------------------------------------------------------------------------------------ nebula-docker-compose_console_1 /bin/sh -c sleep 3 && ... Up nebula-docker-compose_graphd1_1 /usr/local/nebula/bin/ ... Up 0.0.0.0:33205->19669/tcp, 0.0.0.0:33204->19670/tcp nebula-docker-compose_metad0_1 /usr/local/nebula/bin/ ... Up 0.0.0.0:33165->19559/tcp, 0.0.0.0:33162->19560/tcp, 9559/tcp, 0.0.0.0:33163->9560/tcp nebula-docker-compose_metad1_1 /usr/local/nebula/bin/ ... Up 0.0.0.0:33167->19559/tcp, 0.0.0.0:33166->19560/tcp, 9559/tcp, 0.0.0.0:33168->9560/tcp nebula-docker-compose_metad2_1 /usr/local/nebula/bin/ ... Up 0.0.0.0:33171->19559/tcp, 0.0.0.0:33170->19560/tcp, 9559/tcp, 0.0.0.0:33172->9560/tcp nebula-docker-compose_storaged0_1 /usr/local/nebula/bin/ ... Up 0.0.0.0:33179->19779/tcp, 0.0.0.0:33176->19780/tcp, 9777/tcp, 9778/tcp, 9779/tcp, 9780/tcp nebula-docker-compose_storaged1_1 /usr/local/nebula/bin/ ... Up 0.0.0.0:33181->19779/tcp, 0.0.0.0:33180->19780/tcp, 9777/tcp, 9778/tcp, 9779/tcp, 9780/tcp nebula-docker-compose_storaged2_1 /usr/local/nebula/bin/ ... Up 0.0.0.0:33185->19779/tcp, 0.0.0.0:33184->19780/tcp, 9777/tcp, 9778/tcp, 9779/tcp, 9780/tcp
方法二:使用单个 Docker 容器
如果只是想快速体验 NebulaGraph,可以使用单个容器运行:
-
拉取 NebulaGraph 镜像
docker pull vesoft/nebula-graphd:latest
-
运行 NebulaGraph 服务
docker run -it -p 9669:9669 -p 19669:19669 -p 19670:19670 vesoft/nebula-graphd:latest
这个命令会启动一个包含 graphd、metad 和 storaged 的容器。
连接 NebulaGraph
-
进入 NebulaGraph 控制台
docker exec -it nebula-docker-compose_console_1 /bin/sh -c "sleep 3; /usr/local/bin/nebula-console -u root -p nebula --address=graphd --port=9669"
或者如果使用单个容器方式:
docker exec -it <container_id> /usr/local/bin/nebula-console -u root -p nebula
-
基本操作示例
-- 查看服务状态 SHOW HOSTS; -- 创建空间 CREATE SPACE test(partition_num=15, replica_factor=1, vid_type=fixed_string(30)); -- 使用空间 USE test; -- 创建标签 CREATE TAG player(name string, age int); -- 插入数据 INSERT VERTEX player(name, age) VALUES "player1":("Tom", 20); -- 查询数据 FETCH PROP ON player "player1";
管理命令
-
停止服务:
docker-compose down
-
重启服务:
docker-compose restart
-
查看日志:
docker-compose logs
注意事项
-
生产环境建议使用独立的 metad 和 storaged 节点
-
默认配置不适合生产环境,需要根据实际情况调整
-
数据默认存储在容器内,重启容器会丢失数据。如需持久化,需要挂载数据卷:
# 在 docker-compose.yml 中添加 volumes volumes: - ./data:/usr/local/nebula/data
-
默认用户名/密码是 root/nebula
通过以上步骤,你应该已经成功使用 Docker 部署了 NebulaGraph 图数据库。
郭慕荣博客园