我正在使用docker swarm创建一个具有不同wordpress实例的小型基础架构,我有一个入口(nginx)和不同的堆栈(wp,mysql,wp)。每个堆栈的docker-compose如下:
version: "3.7"
networks:
foo-frontend:
foo-backend:
volumes:
db_data:
wordpress_data:
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
env_file:
- db.env
networks:
- foo-backend
ports:
- "3306:3306"
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html/wp-content
env_file:
- wp.env
networks:
- foo-frontend
- foo-backend
nginx:
depends_on:
- wordpress
image: nginx:latest
volumes:
- ./nginx:/etc/nginx/conf.d
- /etc/letsencrypt:/etc/letsencrypt
networks:
- foo-frontend
当入口为:
version: "3.7"
services:
nginx:
image: nginx:latest
ports:
- 80:80
- 443:443
volumes:
- ~/docker-vps/ingress/conf.d:/etc/nginx/conf.d
- /etc/letsencrypt:/etc/letsencrypt
networks:
- foo-frontend
networks:
frontend:
external: true
我的问题是我无法使用客户端连接到mysql,我试图通过正确的端口使用容器ip,但无法正常工作。...有没有办法通过客户端连接到mysql ?
非常感谢
答案 0 :(得分:0)
将主机名视为服务的名称。服务就是这样通信的。因此,数据库的主机名是db
。让我知道发生的错误消息,因为我没有等级可以评论您的原始问题。