首页 > 解决方案 > 连接到 DynamoDB Docker 时无法使用 NoSQL Workbench for DynamoDB 找到表

问题描述

我已经在 Docker 中启动了 DynamoDB:

docker run --network xxx --name dynamodb -d -p 8000:8000 amazon/dynamodb-local

我创建了一个表:

aws dynamodb create-table --table-name test --attribute-definitions \
AttributeName=UUID,AttributeType=S \
--key-schema AttributeName=UUID,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 --endpoint-url http://localhost:8000

列出表格:

aws dynamodb list-tables --endpoint-url http://localhost:8000
{
    "TableNames": [
        "test"
    ]
}

我可以使用localhost:8000. 现在我已经为 Amazon DynamoDB 安装了 NoSQL Workbench。我检查了操作生成器并添加了本地 dynamoDB 的连接。我搜索了表格(测试),但找不到任何东西?我究竟做错了什么?

标签: amazon-web-servicesdockernosqlamazon-dynamodb

解决方案


使其工作的关键是使用-sharedDB标志,如这里详述。

不幸的是,只添加一个键会导致容器在启动后立即退出,我相信原因是通过提供一个标志它会覆盖所有标准标志。

为了避免这个问题,我只提供所有标准的,它可以工作:

docker run -p 8000:8000 -d amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb -dbPath .

使用docker-compose您可以执行以下操作:

version: '3'
services:
  local-dynamo:
    image: amazon/dynamodb-local
    command: -jar DynamoDBLocal.jar -sharedDb -dbPath .
    ports:
      - "8000:8000"

推荐阅读