我正在尝试使用 Docker 与两台 MySQL 服务器和一台 phpMyAdmin 服务器构建环境,以便在开发过程中轻松分析数据。 我的 docker-compose.yml 看起来像这样。
version: "3.9"
services:
database1:
container_name: Database1
image: mysql:8.0.28
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: database1
MYSQL_ROOT_PASSWORD: somepassword
MYSQL_USER: databaseuser1
MYSQL_PASSWORD: databaseuser1
ports:
- "3306:3306"
volumes:
- database-volume:/var/lib/mysql
networks:
- my_network
database2:
container_name: Database2
image: mysql:8.0.28
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: database2
MYSQL_ROOT_PASSWORD: somepassword
MYSQL_USER: databaseuser2
MYSQL_PASSWORD: databaseuser2
ports:
- "3307:3306"
volumes:
- second-database-volume:/var/lib/mysql
networks:
- my_network
phpmyadmin:
container_name: PhpMyAdmin
image: phpmyadmin/phpmyadmin:5.1.3
restart: always
depends_on:
- database1
- database2
environment:
PMA_HOST: database1, database2
PMA_PORT: 3306, 3307
PMA_USER: databaseuser1, databaseuser2
PMA_PASSWORD: databaseuser1, databaseuser2
ports:
- "8080:80"
networks:
- my_network
volumes:
database-volume:
second-database-volume:
networks:
my_network:
driver: bridge
我想知道是否有任何构建方式可以存档此内容。
是的!!!您可以在 docker 中使用单个 PhpMyAdmin 实例连接多个数据库。
请在此处查找示例:
version: "3"
networks:
sample_network:
services:
db-1:
image: mariadb:10.5.8
container_name: db-1
restart: always
environment:
MYSQL_ROOT_PASSWORD: notSecureWay
MYSQL_ROOT_USER: root
MYSQL_DATABASE: db-1
MYSQL_PASSWORD: notSecureWay
networks:
- sample_network
# ports:
# - 8087:3306
volumes:
- db1_data:/var/lib/mysql
db-2:
image: mariadb:10.5.8
container_name: db-2
restart: always
environment:
MYSQL_ROOT_PASSWORD: notSecureWay
MYSQL_ROOT_USER: root
MYSQL_DATABASE: db-2
MYSQL_PASSWORD: notSecureWay
networks:
- sample_network
# ports:
# - 8088:3306
volumes:
- db2_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin
container_name: phpmyadmin
links:
- db-1
- db2
environment:
PMA_HOSTS: dv-1,db-2
PMA_PORT: 3306
PMA_ARBITRARY: 1
restart: always
networks:
- sample_network
ports:
- 8090:80
volumes:
db1_data:
db2_data:
使用 http://localhost:8090/ 在浏览器中启动 phpMyAdmin 应用程序 您可以在 phpMyAdmin 应用程序的登录屏幕中选择数据库。
除了
PMA_HOSTS
还可以使用定制配置。创建一个名为 config.user.inc.php
的文件并将内容放在下面。
<?php
#config.user.inc.php file
$cfg['Servers'] = [
1 => [ #For MySQL instance inside docker compose
'auth_type' => 'config',
'host' => 'container_name',
'user' => 'USER',
'password' => 'PASSWORD',
],
2 => [ # for remote connection
'auth_type' => 'config',
'host' => 'REMOTE_HOST_IP',
'user' => 'USER',
'password' => 'PASSWORD'
],
# Add other connections if needed.
];
然后,添加新卷
localPath/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php