如何在Docker中连接容器外部的mg_client?

Raj*_*Raj 6 database docker docker-compose graphql memgraphdb

我正在尝试访问 docker 容器内的 mg_client,但不幸的是,我无法连接它。我已按照此处文档的说明进行操作

docker-compose.yaml

version: "3"
services:
  redis:
    image: redislabs/redisgraph
    container_name: redis
    restart: unless-stopped
    ports:
      - "6379:6379"

  memgraph:
    image: memgraph
    container_name: memgraph
    restart: unless-stopped
    ports:
      - "7687:7687"
Run Code Online (Sandbox Code Playgroud)

CLI 返回一个错误 -

在此输入图像描述

Memgraph 已成功初始化,如图所示。

在此输入图像描述

奇怪的是,如果我在容器内执行它,我就能够连接。

在此输入图像描述

从我的角度来看,可能会出现什么错误?

PS:我正在尝试创建一个同时运行 Memgraph、Neo4j 和 RedisGraph 的项目,并使用 Python 库/适配器访问每个数据存储。这是迈向这一目标的第一步。

如有反馈,我们将不胜感激。

bud*_*uda 5

docker run如果使用标准,我已经成功连接。Memgraph 运行命令是

docker run --rm -p 7687:7687 --name test memgraph
Run Code Online (Sandbox Code Playgroud)

Memgraph Docker 运行 mg_client

如果docker-compose使用,则必须定义网络:

version: "3"
services:
  memgraph:
    image: memgraph:1.3.0-community
    container_name: memgraph
    networks:
      - test_network
    container_name: memgraph
    restart: unless-stopped
    ports:
      - "7687:7687"
networks:
  test_network:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

Memgraph docker-compose up

请注意确切的网络名称,因为docker-compose将 用作{{folder_name}}_{{network_name}}网络名称。就我而言,那就是stack_issue_test_network. 从docker-compose3.5 开始,可以定义网络名称,但我此时在 Ubuntu 20.04 上使用 1.25。

使用它的好处是不必进行IP解析。可以使用容器名称来代替。

连接到由 docker compose 运行的 Memgraph 实例

最后几点说明: