docker - 容器之间的连接被拒绝
问题描述
我尝试将运行 spring boot 2 应用程序的容器链接到运行 mongo 的容器,但连接被拒绝
docker-compose 文件为 mongo 提供一个容器(稍后还将在此处添加另一个用于 spring boot 的容器)
version: '3.1'
services:
mongo:
image: mongo
container_name: springboot-mongo
ports:
- 27017:27017
volumes:
- $HOME/data/springboot-mongo-data:/data/db
- $HOME/data/springboot-mongo-bkp:/data/bkp
restart: always
用于春季启动的 dockerfile
FROM openjdk:11
RUN apt-get update && apt-get install bash
RUN mkdir -p /opt/app
ENV PROJECT_HOME /opt/app
COPY build/libs/recipe-book.jar $PROJECT_HOME/recipe-book.jar
WORKDIR $PROJECT_HOME
CMD ["java", "-Dspring.data.mongodb.uri=mongodb://springboot-mongo:27017/recipes", "-jar","./recipe-book.jar"]
我尝试了发送命令行 mongo uri 的不同方式:使用 localhost 而不是 springboot-mongo,我还尝试了这里的描述方式https://www.baeldung.com/spring-boot-command-line-arguments,更多具体来说-Dspring-boot.run.arguments=--spring.data.mongodb.uri=mongodb://springboot-mongo:27017/recipes
。每次似乎遇到连接被拒绝。
如何使弹簧容器连接到 mongo?
谢谢
更新,我也尝试将第二个容器添加到 docker-compose 文件中,因此
version: '3.1'
services:
springboot:
build: .
restart: always
container_name: springboot
ports:
- 8182:8080
working_dir: /opt/app
depends_on:
- mongo
mongo:
image: mongo
container_name: springboot-mongo
ports:
- 27017:27017
volumes:
- $HOME/data/springboot-mongo-data:/data/db
- $HOME/data/springboot-mongo-bkp:/data/bkp
restart: always
更新2:
我通过首先在我的计算机上本地构建图像,然后在 docker-compose 文件中使用创建的图像,并将其-Dspring.data.mongodb.uri=mongodb://springboot-mongo:27017/recipes
作为参数,从而部分解决了这个问题,但仍然没有运气直接在 docker-compose 文件中构建它
解决方案
如果您希望两个容器相互通信,那么您需要将它们放在同一个 docker 网络中
像这样更新您的 docker-compose.yml 文件:
version: '3.1'
services:
springboot:
build: .
restart: always
container_name: springboot
ports:
- 8182:8080
working_dir: /opt/app
depends_on:
- mongo
networks:
- local
mongo:
image: mongo
container_name: springboot-mongo
ports:
- 27017:27017
volumes:
- $HOME/data/springboot-mongo-data:/data/db
- $HOME/data/springboot-mongo-bkp:/data/bkp
restart: always
networks:
- local
networks:
local:
driver: bridge
推荐阅读
- html - 在 Matlab 中通过 PUT 或 POST 请求发送多个 *.mat 文件
- excel - 如果列与条件匹配,则复制相邻单元格
- cmake - Cmake 错误:找不到 MPI(缺少:MPI_C_FOUND MPI_CXX_FOUND)
- javascript - Javascript 事件侦听器似乎不适用于 iphone
- objective-c - 核心数据的僵尸错误
- graphql - 无法获取集合单页查询以接受 vuex 变量
- jira - 使用 Laravel 和 Atlassian 连接错误的 Jira 应用程序构建
- python - torch.positive 的目的是什么?
- javascript - 单击按钮后内容显示一秒钟然后消失(React.js)
- android - 应用程序崩溃,因为迟到的 init 属性尚未在 android studio 中初始化