首页 > 解决方案 > 更改 amazon/dynamodb-local 端口

问题描述

如何通过 Amazon Docker 映像更改 dynamodb 启动的端口?

根据this answer-port执行dynamodb java文件时可以使用该选项。

但是,当使用以下命令运行 docker 映像时:docker run -p 8000:8000 amazon/dynamodb-local我没有指定 dynamodb 侦听的端口的选项,只有主机和容器之间连接的端口。

我是否必须制作自己的 Dockerfile,指定操作系统并安装 dynamodb 等等,这样我才能运行 java 命令并指定我的端口?

标签: dockeramazon-dynamodbamazon-dynamodb-local

解决方案


您不需要重建图像。正在做

docker inspect amazon/dynamodb-local

表明入口点设置为

  "Entrypoint": [
   "java"
 ],

所以运行下面的命令会报错:

 $ docker run -p 8001:8001 amazon/dynamodb-local -port 8001
 Unrecognized option: -port
 Error: Could not create the Java Virtual Machine.
 Error: A fatal exception has occurred. Program will exit.

因为我们试图将-port参数传递给java但我们需要将它传递给DynamoDBLocal.jar

一旦我们知道了这一点,我们就可以将 jar 添加到 docker run 并且以下工作:

$ docker run -p 8001:8001 amazon/dynamodb-local -jar DynamoDBLocal.jar -port 8001

Initializing DynamoDB Local with the following configuration:
Port:   8001
InMemory:       false
DbPath: null
SharedDb:       false
shouldDelayTransientStatuses:   false
CorsParams:     *

我会将它作为一个错误提出,但https://hub.docker.com/r/amazon/dynamodb-local/没有提到公共 github 存储库来提出这个问题。


推荐阅读