docker - 使用 docker 将 traefik 配置为反向代理
问题描述
我正在尝试配置 traefik 以连接我的 3 个 docker 容器。我尝试了这种配置,但我在浏览器控制台上得到了 net::ERR_NAME_NOT_RESOLVED。
searchservice:
hostname: searchservice
image: searchservice:0.0.3-SNAPSHOT
container_name: searchservice
networks:
- es-network
#ipv4_address: 172.21.0.12
ports:
- 8070:8080
restart: always
depends_on:
- elasticsearch
- reverseproxy
labels:
- "traefik.frontend.rule=PathPrefix:/searchservice,Host:localhost"
- "traefik.port: 8070"
- "traefik.enable=true"
subscriber-service:
hostname: subscriber-service
image: subscriberservice:0.0.4-SNAPSHOT
container_name: subscriber-service
networks:
- es-network
#ipv4_address: 172.21.0.13
ports:
- 8090:8090
restart: always
depends_on:
- mongo1
- mongo2
- reverseproxy
labels:
- "traefik.frontend.rule=PathPrefix:/api,Host:localhost"
- "traefik.port: 8090"
- "traefik.enable=true"
searchappfront:
hostname: searchappfront
image: frontservice:latest
container_name: searchappfront
networks:
- es-network
ports:
- 80:80
restart: always
depends_on:
- subscriber-service
- searchservice
- reverseproxy
labels:
- "traefik.frontend.rule=PathPrefix:/"
- "traefik.enable=true"
- "traefik.port=80"
# - "traefik.frontend.rule=Host:localhost"
reverseproxy:
image: traefik:v2.1
command:
- '--providers.docker=true'
- '--entryPoints.web.address=:80'
- '--providers.providersThrottleDuration=2s'
- '--providers.docker.watch=true'
- '--providers.docker.defaultRule=Host("local.me")'
- '--accessLog.bufferingSize=0'
volumes:
- '/var/run/docker.sock:/var/run/docker.sock:ro'
#ports:
# - '80:80'
# - '8080:8080'
searchappfront 是一个 Angular 应用程序,其中 http 端点具有这种模式
http://subscriber-service:8090/
http://searchservice:8070/
如果我使用 localhost 而不是主机名,请求可以正常工作,但我需要将这些容器部署在云实例中。
解决方案
您正在使用 traefik 2,但您的注释适用于 traefik 1。这不起作用。
推荐阅读
- r - 如何修复ggplot连续颜色范围
- microsoft-graph-api - GetUsers 请求超时
- sql - 无法执行以下选择语句得到错误
- python - 如何使用请求和 BeautifulSoup 找到重定向的 url
- javascript - Django javascript fetch post方法问题
- azure-devops - Azure Devops Build:计划构建的参数
- c# - 什么时候不使用关键字作为引用类型的方法参数?
- reactjs - 对于我的代码,我没有在 reactjs 中获得分页和搜索栏
- ios - UINavigationController 必须在使用新 ViewController 更新视图时调用方法
- php - 使用 Laravel 助手转换数据