Docker Swarm 集群与 DNS 联网并查询 SRV 记录

Kas*_*bbe 5 dns docker docker-compose docker-swarm moby

所以我有一个非常简单的 Docker Swarm 集群,首先我像这样初始化它:

apt-get update && apt-get upgrade
apt install docker docker-compose

docker stack deploy --prune --compose-file=docker-compose.yml testapp
Run Code Online (Sandbox Code Playgroud)

这是docker-compose.yml文件:

version: "3.7"

services:
  db:
    image: postgres:10.5-alpine
    environment:
      - POSTGRES_DB=test_app_production
      - POSTGRES_USER=test_app_user
      - POSTGRES_PASSWORD=test_app_password
    ports:
      - "5432:5432"
    deploy:
      replicas: 1
      restart_policy:
        condition: "on-failure"

  redis:
    image: redis:4.0.11-alpine
    ports:
      - "6379:6379"
    deploy:
      replicas: 1
      restart_policy:
        condition: "on-failure"
Run Code Online (Sandbox Code Playgroud)

如何查询 docker DNS 中的 SRV 记录?我知道我可以查询 DNS 并获得循环答案:

ping db
Run Code Online (Sandbox Code Playgroud)

但是我如何告诉集群每个服务有哪些 SRV 记录,以及如何从其他容器查询它们?