码头新手来了。
我想要实现的是运行多个MySQL容器并进行对接。
这是我的船坞-合成人. This:
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'但是,当我运行-d时,它显示了下面的错误:
错误:对于(7eac3d28093db7be7b5c81495ee652f6a1df8208388d33df668f1732a118481a):,consultingdocker_mysql2_1无法启动服务mysql2:驱动程序在端点上编程失败,consultingdocker_mysql2_1绑定为0.0.0.0:3306失败:端口已经分配 错误:对于(7eac3d28093db7be7b5c81495ee652f6a1df8208388d33df668f1732a118481a):,mysql2无法启动服务mysql2:驱动程序在端点consultingdocker_mysql2_1上的外部连接失败,consultingdocker_mysql2_1绑定为0.0.0.0:3306失败:端口已经被分配,错误:在启动项目时遇到错误。
请让我知道我在这里错过了什么?
发布于 2018-01-19 10:39:08
端口3306已经由容器mysql在主机上使用,因此您不能在主机上为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上可用。
发布于 2018-01-19 10:33:32
“端口”数组配置是倒置的。如果你写这个:
port:
- "3306:3307"它的意思是“将主机网络上的端口3306绑定到集装箱网络中的端口3307”。
而你想要的正好相反。
换个号码,它就能用了
https://stackoverflow.com/questions/48338992
复制相似问题