假设我有几个不同的容器,每个容器都使用它自己的数据库.在这种情况下,有关性能的最佳做法是什么?运行一个容器,比如MySQL服务器,其中包含所有数据库,或者每个数据库运行一个数据库服务器容器?
除了表演之外的任何其他评论都将受到欢迎.
我有一个包含两个主要Java应用程序的项目,这些应用程序使用八个postgres数据库,那么docker-compose中是否有一种方法可以构建八个不同的数据库,以便每个数据库具有不同的所有者和密码?我什至可以在docker-compose中做到这一点吗?
例如:
services:
postgresql:
build: db/.
ports:
- "5432:5432"
environment:
- POSTGRES_DB=database1
- POSTGRES_USER=database1
- POSTGRES_PASSWORD=database1
Run Code Online (Sandbox Code Playgroud)
我知道我可以将所有.sql文件放入docker-entrypoint-initdb.d中,而postgres会自动将它们生成,但是如何声明什么.sql文件进入哪个数据库?
Tnx,汤姆
我知道这看起来像是docker-compose 与多个数据库的重复,但在通过答案后我仍然无法让它工作。
这是我的docker-compose.yml:
version: '3'
services:
backend:
image: backend:1.0
build: ./backend
ports:
- "9090:9090"
depends_on:
- db
- ppt
environment:
- DATABASE_HOST=db
db:
image: main_db:26.03.18
restart: always
build: ./db
ports:
- "5432:5432"
ppt:
image: ppt_generator:1.0
build: ./ppt
ports:
- "6060:6060"
login:
image: login:1.0
build: ./login
ports:
- "7070:7070"
depends_on:
- login_db
login_db:
image: login_db:27.04.2018
restart: always
build: ./login_db
ports:
- "5433:5433"
Run Code Online (Sandbox Code Playgroud)
请注意,我在端口 5433 上有一个数据库,另一个在 5432 上。但是,当我docker ps在启动容器后运行时,我得到以下信息。我不完全了解端口发生了什么。
CONTAINER ID IMAGE COMMAND CREATED STATUS …Run Code Online (Sandbox Code Playgroud)