[英]Docker container connection to database (image with a Java Spring boot app)
[英]How link a Spring boot app at existing docker container for database?
我想将我的应用程序从一个Docker容器与另一个docker容器一起使用,一个用于postgres
,一个用于solr
。
我的泊坞窗撰写为:
version: '3'
services:
core:
build: ./core
ports:
- "8081:8081"
environment:
- "SPRING_PROFILES_ACTIVE=production"
links:
- postgresdb
- solrdb
postgresdb:
image: postgres:9.4
container_name: postgres
ports:
- "5432:5432"
environment:
- DB_DRIVER=org.postgresql.Driver
- DB_URL=jdbc:postgresql://localhost:5432/db
- DB_USERNAME=db
- DB_PASSWORD=db
networks:
default:
solrdb:
image: solr:5.5
container_name: solr
ports:
- "8983:8983"
environment:
- DB_URL=http://localhost:8984/solr
networks:
default:
networks:
default:
external:
name: mynet
而且我已经创建了用于solr
和postgres
容器,仅我想使用它即可。 我该怎么办?
您已经公开了solrdb和postgresdb的端口。 因此,在您的其他容器中,请通过容器名称和暴露的端口访问这些Db。
例如,应该通过solrdb:8983访问solrDb,
应该通过postgresdb:5432访问postgresdb
编辑:确保两个容器都在同一网络中运行。 您需要为所有容器添加此网络字段。
postgresdb:
image: postgres:9.4
container_name: postgresdb
ports:
- "5432:5432"
environment:
- DB_DRIVER=org.postgresql.Driver
- DB_URL=jdbc:postgresql://localhost:5432/db
- DB_USERNAME=db
- DB_PASSWORD=db
networks:
default:
并且在所有docker文件的末尾
networks:
default:
external:
name: <your-network-name>
并且确保在启动这些容器之前您的预定义网络正在运行。 创建网络:
docker network create --driver overlay --scope global <your-network-name>
注意:postgresdb:5432将可以访问您的容器('postgresdb')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.