gpt4 book ai didi

docker - 容器之间的连接被拒绝

转载 作者:行者123 更新时间:2023-12-02 18:19:59 25 4
gpt4 key购买 nike

我尝试将运行 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

用于 Spring 启动的 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 .似乎每次连接都被拒绝。

如何让 spring 容器连接到 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

关于docker - 容器之间的连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55673786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com