java - 如何将我的 docker 连接到远程数据库?

标签 java mongodb docker spring-boot

我想访问在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", "&"]

我的应用程序属性:

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

我将 docker 镜像构建为:

docker build -t app:app .

我将 docker 镜像运行为:

docker run -d <imageId> 

最佳答案

以下命令即可完成工作。

docker run --net=host <imageId>

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

关于java - 如何将我的 docker 连接到远程数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038357/

相关文章:

node.js - Nodejs Express 使用表单中的数据查询 mongolab 以获取单个条目

docker - 从本地服务器克隆docker镜像?

docker - docker 主机上的 ansible 不符合预期

java - 如何在 1 秒内发送 4000+ 请求?

java - Java 中与 Socket 一起使用时可序列化的外部类

java - 如果选择了某个 JCheckBox,如何删除它?

mongodb - 聚合查询的 Mongo 性能极慢

MongoDB 基于每个元素对来自多个文档的数组求和

linux - Linux docker:System.Security.Authentication.AuthenticationException:根据验证过程,远程证书无效

java - Java 中自动装箱的替代方案是什么?