在Traefik中使用固定端口公开数据库服务

时间:2019-02-15 12:40:26

标签: docker-swarm traefik

在Docker群中,我们部署了三个堆栈,每个堆栈在容器端口3306上运行数据库服务。

mariadb:
  image: my_mariadb_image
  environment:
    - MYSQL_ALLOW_EMPTY_PASSWORD=false
    - MYSQL_DATABASE=db_schema
    - MYSQL_USER=db_user
    - MYSQL_PASSWORD=db_pass
  ports:
    - 3306
  volumes:
    - mariadb:/var/lib/mysql
  networks:
    - cluster-global-net
    - default
  restart: on-failure
  deploy:
    labels:
      traefik.docker.network: cluster-global-net
      traefik.port: 3306

Traefik获取这些服务并提供前端路由规则:
stackName-mariadb.domain.com

我可以使用此路由连接到堆栈的数据库,但是我需要使用一个端口(在本例中为30004),该端口似乎是在“某处”动态分配的,并映射到内部数据库端口3306。

我如何告诉Traefik使用固定端口,例如3306,以便可以将其用作连接字符串?

stackName-mariadb.domain.com:3306

0 个答案:

没有答案