【问题标题】:How do I connect my docker to remote database?如何将我的 docker 连接到远程数据库?
【发布时间】:2019-02-01 22:27:09
【问题描述】:

我想访问在 url:“xyz”(远程主机)上运行的 mongo db,并且在我的 spring boot 应用程序属性中,我提到了“xyz”的 mongodb url。 现在,当我在 docker 容器中运行此应用程序时,它无法连接到远程 url,并显示连接被拒绝错误。 我们如何从容器内部访问远程数据库?

下面是我的 DockerFile

FROM openjdk:8-jdk-alpine
RUN apk add --no-cache bash
RUN apk add --no-cache curl
EXPOSE 8090
COPY target/<jar file> /application.jar
RUN mkdir /logs
RUN /bin/sh -c "apk add --no-cache bash"
ENTRYPOINT ["/usr/bin/java"]
CMD ["-DLOG_DIR=/logs", "-DLOG_FILE=application.log", "-jar", "-Dspring.profiles.active=local", "-Xmx1g", "/application.jar", "&"]

我的 Application.properties:

spring.data.mongodb.uri = <mongodb-url>

我将我的 docker 镜像构建为:

docker build -t app:app .

我将 docker 镜像运行为:

docker run -d <imageId> 

【问题讨论】:

  • 您是否为您的 docker 环境设置了网络设置,如果没有,您应该这样做。
  • @MuratGüvenç 更新了问题。请让我知道我必须进行哪些网络设置?
  • @AlexKarshin 更新
  • MongoDB 在哪里,spring.data.mongodb.uri 中的主机是什么?

标签: java mongodb docker spring-boot


【解决方案1】:

以下命令完成工作。

docker run --net=host <imageId>

小心这个命令,因为--net=host 使容器与主机共享网络。容器的网络将不再被隔离。

【讨论】:

    猜你喜欢
    • 2021-04-23
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多