使用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

    1. 通过Git克隆nebula-docker-compose仓库的2.6.0分支到主机。

      Danger

      master分支包含最新的未测试代码。请不要在生产环境使用此版本。

    2. 切换至目录nebula-docker-compose

      1. $ cd nebula-docker-compose/
    3. 执行如下命令启动Nebula Graph服务。

      Note

      如果长期未更新镜像,请先更新Nebula Graph镜像和。

      1. [nebula-docker-compose]$ docker-compose up -d
      2. Creating nebula-docker-compose_metad0_1 ... done
      3. Creating nebula-docker-compose_metad2_1 ... done
      4. Creating nebula-docker-compose_metad1_1 ... done
      5. Creating nebula-docker-compose_graphd2_1 ... done
      6. Creating nebula-docker-compose_graphd_1 ... done
      7. Creating nebula-docker-compose_graphd1_1 ... done
      8. Creating nebula-docker-compose_storaged0_1 ... done
      9. Creating nebula-docker-compose_storaged2_1 ... done
      10. Creating nebula-docker-compose_storaged1_1 ... done

      Note

      上述服务的更多信息,请参见架构总览

    4. 执行两次exit 可以退出容器。

    执行命令docker-compose ps可以列出Nebula Graph服务的状态和端口。

    1. $ docker-compose ps
    2. Name Command State Ports
    3. -------------------------------------------------------------------------------------------------------------------------------------------------------------------
    4. 3699/tcp, 0.0.0.0:33298->9669/tcp
    5. 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,
    6. 3699/tcp, 0.0.0.0:33286->9669/tcp
    7. 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,
    8. 3699/tcp, 0.0.0.0:9669->9669/tcp
    9. 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,
    10. 45500/tcp, 45501/tcp, 0.0.0.0:33278->9559/tcp
    11. 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,
    12. 45500/tcp, 45501/tcp, 0.0.0.0:33281->9559/tcp
    13. 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,
    14. 45500/tcp, 45501/tcp, 0.0.0.0:33283->9559/tcp
    15. 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,
    16. 44500/tcp, 44501/tcp, 0.0.0.0:33294->9779/tcp
    17. 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,
    18. 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,
    19. 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/datanebula-docker-compose/logs目录中。

    目录的结构如下:

    用户可以执行如下命令停止Nebula Graph服务:

    1. $ docker-compose down

    如果返回如下信息,表示已经成功停止服务。

    1. Stopping nebula-docker-compose_graphd2_1 ... done
    2. Stopping nebula-docker-compose_graphd1_1 ... done
    3. Stopping nebula-docker-compose_graphd_1 ... done
    4. Stopping nebula-docker-compose_storaged1_1 ... done
    5. Stopping nebula-docker-compose_storaged2_1 ... done
    6. Stopping nebula-docker-compose_storaged0_1 ... done
    7. Stopping nebula-docker-compose_metad0_1 ... done
    8. Stopping nebula-docker-compose_metad1_1 ... done
    9. Stopping nebula-docker-compose_metad2_1 ... done
    10. Removing nebula-docker-compose_graphd2_1 ... done
    11. Removing nebula-docker-compose_graphd1_1 ... done
    12. Removing nebula-docker-compose_graphd_1 ... done
    13. Removing nebula-docker-compose_storaged1_1 ... done
    14. Removing nebula-docker-compose_storaged2_1 ... done
    15. Removing nebula-docker-compose_metad0_1 ... done
    16. Removing nebula-docker-compose_metad1_1 ... done
    17. Removing nebula-docker-compose_metad2_1 ... done
    18. 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设置为固定映射,例如:

    1. graphd:
    2. image: vesoft/nebula-graphd:v2.6.1
    3. ...
    4. ports:
    5. - 9669:9669
    6. - 19669
    7. - 19670

    如何升级/更新Nebula Graph服务的Docker镜像?

    1. 在文件nebula-docker-compose/docker-compose.yaml中,找到所有服务的image并修改其值为相应的镜像版本。

    2. 在目录nebula-docker-compose内执行命令docker-compose pull,更新Graph服务、Storage服务和Meta服务的镜像。

      Note

      执行docker-compose pull命令更新服务镜像前,确保已停止Nebula Graph。

    3. 执行命令docker-compose up -d启动Nebula Graph服务。

    4. 通过Nebula Console连接Nebula Graph后,分别执行命令SHOW HOSTS GRAPHSHOW HOSTS STORAGESHOW 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