【发布时间】:2021-11-03 09:36:41
【问题描述】:
我正在尝试使用以下配置docker-compose.yaml 文件通过以下命令使用 docker swarm 部署堆栈:
docker stack deploy --with-registry-auth -c docker-compose.yaml project
version: "3.9"
services:
mysql:
image: mysql:8.0
deploy:
replicas: 1
volumes:
- mysql_data:/var/lib/mysql
networks:
- internal
ports:
- 3306:3306
environment:
MYSQL_ROOT_HOST: '%'
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: project_production
MYSQL_USER: username
MYSQL_PASSWORD: password
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.4
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- internal
website:
image: registry.gitlab.com/project/project-website:latest
networks:
- internal
deploy:
replicas: 1
ports:
- 3000:3000
environment:
- RAILS_ENV=production
- MYSQL_HOST=mysql
- ES_HOST=http://es01
- project_DATABASE_USERNAME=root
- project_DATABASE_PASSWORD=root
depends_on:
- es01
- mysql
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
mysql_data:
networks:
internal:
external: true
name: project
在部署堆栈之前,我还通过以下命令为项目创建了网络:
docker network create -d overlay project
但是当我看到使用docker logs 命令的project 的日志时,我看到以下错误停止了我的project 开始:
Mysql2::Error: Host '10.0.2.202' is not allowed to connect to this MySQL server
我完全按照文件的建议进行了,我不确定我提出的设置有什么问题!
问题:
如何在 docker swarm 中从 project 连接到 mysql 容器?
【问题讨论】:
-
您首先在外部创建网络有什么原因吗?看起来它是一个公共网络,您正在连接到错误的 (
Myslq2) 实例。你的mysql用户名和密码也不匹配。
标签: docker containers docker-swarm