【发布时间】:2019-05-17 07:26:21
【问题描述】:
我有一台以集群模式运行的主机。我现在在单台机器上运行它,没有集群(没有多台机器)。
服务运行良好。我为 mysql 容器创建了一个卷。我相信当 mysql 容器被缩放时,它们都会从同一个卷中读取。
这里是 docker-compose。哪个很好用,没有 mysql 连接问题,但是当我将 mysql 容器扩展到 2 时
version: "3.4"
services:
node:
image: prod_engineering_node:v7
networks:
- backend
volumes:
- ./codebase:/usr/src/app
ports:
- "8082:8082"
depends_on:
- engineeringmysql
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
mysql:
image: prod_engineering_mysql:v1
command: mysqld --default-authentication-plugin=mysql_native_password
networks:
- backend
ports:
- "3309:3306"
environment:
MYSQL_ROOT_PASSWORD: main_pass
MYSQL_DATABASE: engineering
MYSQL_USER: user
MYSQL_PASSWORD: pass
volumes:
- ./sqldata:/var/lib/mysql:rw
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
nginx:
image: prod_engineering_nginx:v1
ports:
- "80:80"
- "443:443"
volumes:
- ./angular_build:/var/www/html/studydote_v2/frontend:rw
- ./laravel_admin:/var/www/html/dev/backend/public:rw
networks:
- backend
depends_on:
- engineeringphpfpm
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
phpfpm:
image: prod_engineering_phpfpm:v1
ports:
- "9001:9000"
depends_on:
- engineeringmysql
networks:
- backend
volumes:
- ./angular_build:/var/www/html/studydote_v2/frontend:rw
- ./laravel_admin:/var/www/html/dev/backend/public:rw
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
networks:
backend:
driver: overlay
这就是我扩展 mysql 容器的方式。
docker service scale servicename=2
现在我遇到了数据库连接问题。
有人可以帮我吗?可能是什么问题?如果这是扩展 mysql 数据库的错误方法,请建议我有什么更好的方法。
【问题讨论】:
标签: mysql docker docker-compose docker-swarm