[英]Docker with Multiple Mysql Container not working
Docker新手在這里。
我想要實現的目標是使用docker compose運行多個MySQL容器。
這是我的docker-compose.yml:
version: '2'
services:
mysql:
build: ./docker-configs/mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: admin
volumes:
- ./data/mysql:/var/lib/mysql
- ./data/init.d:/docker-entrypoint-initdb.d
mysql2:
build: ./docker-configs/mysql2
ports:
- "3306:3307"
environment:
MYSQL_ROOT_PASSWORD: admin
volumes:
- ./data/mysql2:/var/lib/mysql2
- ./data/init.d:/docker-entrypoint-initdb.d
nginx-proxy:
image: jwilder/nginx-proxy
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
- ./docker-configs/nginx-proxy/certs:/etc/nginx/certs
ports:
- '80:80'
- '443:443'
但是當我運行docker-compose up -d時,它顯示了以下錯誤:
錯誤:用於咨詢docker_mysql2_1無法啟動服務mysql2:驅動程序無法在端點咨詢上編程外部連接docker_mysql2_1(7eac3d28093db7be7b5c81495ee652f6a1df8208388d33df668f1732a118481a):綁定0.0.0.0:3306失敗:端口已分配
錯誤:對於mysql2無法啟動服務mysql2:驅動程序在端點咨詢docker_mysql2_1(7eac3d28093db7be7b5c81495ee652f6a1df8208388d33df668f1732a118481a)上的外部連接編程失敗
請讓我知道我在這里想念什么?
“端口”陣列配置被反轉。 如果您這樣寫:
port:
- "3306:3307"
它表示“將主機網絡上的端口3306綁定到容器網絡中的端口3307”。
當您想要完全相反時。
交換數字即可使用
容器mysql
已在主機上使用端口3306
,因此您不能在主機上為mysql2
容器分配相同的端口。 將您的mysql2
服務配置更改為以下內容,它應該可以工作-
mysql2:
build: ./docker-configs/mysql2
ports:
- "3307:3307"
environment:
MYSQL_ROOT_PASSWORD: admin
volumes:
- ./data/mysql2:/var/lib/mysql2
- ./data/init.d:/docker-entrypoint-initdb.d
現在,您的mysql2
服務將在主機上的端口3307上可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.