我想使用相同的 phpmyadmin 端口,并且只为两个不同的服务创建两个不同的数据库。是否有可能?我试过这个:
docker-compose.yml 用于第一个服务
version: '3.8'
services:
accounting-software:
build:
context: .
dockerfile: Dockerfile
command: 'php artisan serve --host=0.0.0.0'
volumes:
- .:/app
ports:
- 8000:8000
depends_on:
- accounting_db
accounting_db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: accounting_software
ports:
- "3308:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
PMA_HOST: accounting_db
PMA_USER: root
PMA_PASSWORD: root
ports:
- "8080:80"
docker-compose.yml 用于第二个服务
version: '3.8'
services:
accounting-chat:
build:
context: .
dockerfile: Dockerfile
command: 'php artisan serve --host=0.0.0.0'
volumes:
- .:/app
ports:
- 8001:8000
depends_on:
- chat_db
chat_db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: accounting_chat
ports:
- "3309:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
PMA_HOST: chat_db
PMA_USER: root
PMA_PASSWORD: root
ports:
- "8080:80"
我收到以下错误:
<块引用>来自守护进程的错误响应:驱动程序在端点 accounting-chat_phpmyadmin_1 上编程外部连接失败(6bed4e2c149b0bf6ed3079f50984c4322cb4fce6c693c3b1c92e8f29229654a7):绑定为 0:8 端口已失败:0> 已分配:0>。
答案 0 :(得分:0)
让我们看看这两个 docker-compose
文件的最后几行。它们都有“8080:80”端口。如果您需要运行 phpmyadmin
的两个实例,您应该更改其中之一。例如,将其中之一更改为“8081:80”,或者您可以运行一个实例。由于您更改了聊天数据库端口。
version: '3.8'
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
environment:
PMA_HOST: accounting_db
PMA_USER: root
PMA_PASSWORD: root
ports:
- "8080:80"
accounting-software:
build:
context: .
dockerfile: Dockerfile
command: 'php artisan serve --host=0.0.0.0'
volumes:
- .:/app
ports:
- 8000:8000
depends_on:
- accounting_db
accounting_db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: accounting_software
ports:
- "3308:3306"
depends_on:
- phpmyadmin
accounting-chat:
build:
context: .
dockerfile: Dockerfile
command: 'php artisan serve --host=0.0.0.0'
volumes:
- .:/app
ports:
- 8001:8000
depends_on:
- chat_db
chat_db_2:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: accounting_chat
ports:
- "3309:3306"
depends_on:
- phpmyadmin
有关详细信息,第一个端口是您的本地机器端口,第二个端口是用于容器的。由于您的机器上有一个唯一的可用端口,因此您不能在该端口上运行另一个实例,该端口上有一个服务。它应该被杀死或更改为另一个端口。