DNSRR是docker swarm模式的一个关键概念:
https://docs.docker.com/engine/swarm/key-concepts/#load-balancing
因为您正在使用部署MySQL服务
--name mysql-app
并分配
flask-app
在同一网络中
--network my-network
,这两个服务可以通过名称相互联系。不需要计算IP地址。
尝试
# create a test network
docker network create testnetwork
# start mariadb
docker run -d --name bettermysql --network testnetwork -e MYSQL_ROOT_PASSWORD=nomysql mariadb:latest
# start some other linux and ping mariadb by name
docker run -ti --network testnetwork alpine:3.7 /bin/sh
/ # ping bettermysql
PING bettermysql (172.19.0.2): 56 data bytes
64 bytes from 172.19.0.2: seq=0 ttl=64 time=1.661 ms
...
当您在swarm模式下开发时,您希望使用
--attachable
您的
docker network create
命令您可以使用普通docker容器访问覆盖网络(
docker run ...
)用于测试和调试。
TL;DR公司
使用
mysql-app
像
MYSQL_HOST
在您的
烧瓶应用程序
配置。