从 Docker 连接到本地主机(Java 应用程序使用 localstack 模拟 AWS)
Connecting to localhost from Docker (Java Application using localstack for mocking AWS)
我正在使用 localstack 在本地模拟 AWS 资源。当我 运行 我的应用程序来自 IDE 时,这工作正常。我有一个包含以下内容的 dockerfile(1338 是此应用程序 运行 上的端口)
ADD target/myapp-0.0.1-SNAPSHOT.jar app.jar
我有一个 运行 的脚本
#!/bin/bash
set -e # Stop on errors
mvn clean package
docker build -t myapp .
docker run -it --name myapp -p 1338:1338 --rm myapp:latest
所以当我 运行 我得到错误
Unexpected error occurred in scheduled task
com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to localhost:4575 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
我想你是 运行 主机 OS 上的 localstack,这就是 myapp
无法访问它的原因。
要解决您的问题,您需要通过添加参数 --network host
.
来调整您的 docker run
指令
我正在使用 localstack 在本地模拟 AWS 资源。当我 运行 我的应用程序来自 IDE 时,这工作正常。我有一个包含以下内容的 dockerfile(1338 是此应用程序 运行 上的端口)
ADD target/myapp-0.0.1-SNAPSHOT.jar app.jar
我有一个 运行 的脚本
#!/bin/bash
set -e # Stop on errors
mvn clean package
docker build -t myapp .
docker run -it --name myapp -p 1338:1338 --rm myapp:latest
所以当我 运行 我得到错误
Unexpected error occurred in scheduled task
com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to localhost:4575 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
我想你是 运行 主机 OS 上的 localstack,这就是 myapp
无法访问它的原因。
要解决您的问题,您需要通过添加参数 --network host
.
docker run
指令