【发布时间】:2021-12-21 13:18:40
【问题描述】:
这里的目标是我想将此后端(python)服务器连接到 mysql,但问题是 docker 容器内的“mysql”主机名转换为 127.0.0.1 这是错误的,它应该是来自的 ip像 192.168.x.x 这样的网络。我尝试将链接和 external_links 添加到 docker compose 文件中,但没有帮助。 我在这里做错了什么?
version: "3.0"
services:
client:
build: frontend
image: project/client
ports:
- "8090:80"
networks:
- frontend
server:
build: ./server
image: project/server
networks:
- backend
- frontend
depends_on:
- mysql
volumes:
- project-server-vol:/data
ports:
- "8080:8080"
mysql:
image: mysql:latest
networks:
- backend
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
volumes:
- project-mysql-vol:/var/lib/mysql
ports:
- "3306:3306"
volumes:
project-server-vol: {}
project-mysql-vol: {}
networks:
frontend: {}
backend: {}
【问题讨论】:
-
在哪个容器内解析为127.0.0.1?
-
请包括您如何验证 mysql DNS 解析错误的输出。像 nicolaka/netshoot 这样的项目可能会有所帮助。
-
@HansKilian 我正在尝试从服务器容器中解析。
-
能否请您提供两个网络的
docker network inspect name(用docker network ls查找名称)? -
当我尝试复制它时,mysql 从服务器容器内解析为 192.168.144.2
标签: docker docker-compose