mysql - 使用客户端连接到 docker 网络中的 mysql
问题描述
我正在使用 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?
非常感谢
解决方案
将服务名称视为主机名。这就是服务通信的方式。所以,数据库的主机名是db
. 让我知道发生的错误消息,因为我没有评级来评论您的原始问题以了解这一点。
推荐阅读
- java - 应用更新后无法从共享首选项加载数据
- java - 返回几个项目列表
- python - 由于页面自动重新加载,使用 selenium 无限向下滚动总是失败
- node.js - NodeJS cors 不过滤任何东西
- r - r: Assign n dataframe subsets from a list created in a custom function to objects in global environment
- python - 数据框打印为空数据框?
- python - 如何使用python仅使用一个循环迭代二维矩阵的所有元素
- bash - 使用 cron 扩展参数
- azure - 部署在 Azure 中的 API 不起作用,我不知道为什么
- css - 使用背景滤镜时无法移除滚动上的模糊边缘:模糊