两个docker容器的phpmyadmin端口相同



我想使用相同的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"

我得到以下错误:

后台程序的错误响应:驱动程序在端点帐户chat_hpmyadmin_1上编程外部连接失败(6bed4e2c149b0bf6ed3079f50984c4322cb4fce6c693c3b1c92e8f29229654a7(:0.0.0.0:8080的绑定失败:端口已分配`

让我们看看这两个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

有关更多详细信息,第一个端口是本地计算机端口,第二个端口用于容器。由于你的机器上有一个唯一的可用端口,你不能在有服务的端口上运行另一个实例。它应该被终止或更改为另一个端口。

最新更新