如何允许我的 docker 容器连接到本地堆栈

Dap*_* Ms 6 docker localstack

操作系统:mac Os Big sur

您好,我想从也在测试网络中运行的另一个 docker 容器连接到在测试网络中的 4566 上运行的本地堆栈。

如果我运行,则从 docker 容器内部:

aws --endpoint-url=http://localhost:4566 dynamodb list-tables

Could not connect to the endpoint URL: "http://localhost:4566/"
Run Code Online (Sandbox Code Playgroud)

如果我运行,则在 Docker 容器之外:

 aws --endpoint-url=http://localhost:4566 dynamodb list-tables
{
    "TableNames": [
        "test-table-1"
    ]
}

Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激

Bri*_*HVB 8

如果您使用 docker-compose 来定义 localstack 映像,并且没有更改默认的网络模式,那么在任何容器内与 localstack 交互时,您将需要使用服务的名称。

默认网络模式创建一个由同一台计算机上运行的所有服务共享的桥接网络。这些服务可以根据 Docker 建立的桥相互发现。

假设您的服务被调用localstack,那么您需要将 AWS 终端节点设置为http://localstack:4566。如果您的 localstack 服务被调用my-localstack并且您将端口更改为 4080,那么您将使用http://my-localstack:4080.

请参阅这个半相关答案