如何将我的 docker 连接到远程数据库?
Posted
技术标签:
【中文标题】如何将我的 docker 连接到远程数据库?【英文标题】:How do I connect my docker to remote database? 【发布时间】: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 环境设置了网络设置,如果没有,您应该这样做。 请阅读How to create a Minimal, Complete, and Verifiable example @MuratGüvenç 更新了问题。请让我知道我必须进行哪些网络设置? @AlexKarshin 更新 MongoDB 在哪里,spring.data.mongodb.uri 中的主机是什么? 【参考方案1】:以下命令完成工作。
docker run --net=host <imageId>
小心这个命令,因为--net=host
使容器与主机共享网络。容器的网络将不再被隔离。
【讨论】:
以上是关于如何将我的 docker 连接到远程数据库?的主要内容,如果未能解决你的问题,请参考以下文章
如何将我的 Spring Boot 应用程序连接到 Docker 上的 Redis 容器?