首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Docker Compose :将针对特定域名和子域的容器请求重新路由到容器

Docker Compose 概念

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 docker-compose.yml 文件来配置应用程序的服务,可以轻松地启动、停止和管理多个服务。

基础概念

  • 服务(Services):在 docker-compose.yml 文件中定义的应用程序组件。
  • 网络(Networks):Docker Compose 允许你定义网络,以便容器之间可以相互通信。
  • 卷(Volumes):用于持久化数据。

相关优势

  1. 简化部署:通过一个文件定义所有服务,简化了部署流程。
  2. 易于管理:可以同时启动、停止和重启多个服务。
  3. 网络管理:可以定义自定义网络,方便容器之间的通信。

类型

  • 版本 2:支持服务发现和负载均衡。
  • 版本 3:增加了对 Docker Swarm 的支持,改进了网络和卷的管理。

应用场景

  • 微服务架构:适用于需要多个服务协同工作的应用。
  • 开发环境:方便开发者快速搭建和测试应用。
  • 持续集成/持续部署(CI/CD):可以与 CI/CD 工具集成,自动化部署流程。

问题:将针对特定域名和子域的容器请求重新路由到容器

原因

在 Docker Compose 中,默认情况下,容器可以通过服务名称相互通信。但是,对于外部请求(如浏览器访问),需要通过反向代理(如 Nginx 或 Traefik)来处理域名和子域的路由。

解决方案

  1. 使用 Nginx 作为反向代理
    • 安装 Nginx 并配置反向代理规则。
    • docker-compose.yml 文件中定义 Nginx 服务和应用服务。
    • docker-compose.yml 文件中定义 Nginx 服务和应用服务。
    • docker-compose.yml 文件中定义 Nginx 服务和应用服务。
  • 使用 Traefik 作为反向代理
    • 安装 Traefik 并配置反向代理规则。
    • docker-compose.yml 文件中定义 Traefik 服务和应用服务。
    • docker-compose.yml 文件中定义 Traefik 服务和应用服务。
    • docker-compose.yml 文件中定义 Traefik 服务和应用服务。

参考链接

通过上述配置,你可以将特定域名和子域的请求重新路由到相应的容器中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一文搞定快速使用 Docker Compose 玩转 Traefik v2

Docker 有一个域名 example.com 使用 cloudflare 管理域名 DNS 80/443 已打开 章节 Traefik 路由 Docker 容器 Traefik 路由本地 IP...域名,API密钥,IP地址,密码…… 无论是针对一种情况特定情况,还是针对另一种情况不同情况,所有这些都理想地放在了这里。...符合该规则(在本例中为确切网址 test.example.com)内容发送到 loadbalancer 服务, 该服务会将其路由特定 IP 特定端口。...它是 traefik 一部分。 DNS - 互联网上服务器,域名转换为 IP 地址 Traefik 使用 ACME 向 LE 请求特定证书,如 example.com。...它是 traefik 一部分。 DNS - 互联网上服务器,域名转换为 IP 地址 Traefik 使用 ACME 向 LE 请求特定证书,如 example.com。

6.7K40

如何在Ubuntu 18.04上使用Traefik作为Docker容器反向代理

在本教程中,您将使用Traefik请求路由两个不同Web应用程序容器:Wordpress容器Adminer容器,每个容器都与MySQL数据库通信。...我们已经提供程序配置为在web网络上watch容器(我们很快就会创建)并将它们作为your_domain进行公开。...traefik.frontend.rule=Host:blog.your_domain告诉Traefik检查所请求主机,如果它匹配blog.your_domain``blog模式,则应该流量路由容器...traefik.port 指定Traefik用于流量路由到此容器公开端口。 使用此配置,发送到Docker主机端口80所有流量都将路由blog容器。...结论 在本教程中,您将Traefik配置为请求代理到Docker容器其他应用程序。

2.2K74
  • 在 Traefik Proxy 2.5 中使用开发私有插件(Traefik 官方博客)

    作为插件开发环境 为常规开发工作配置本地 DNS 服务 引用 Traefik Proxy 在设计上是一个模块化路由器,允许您将中间件放入您路由中,并在请求到达预期后端服务目的地之前对其进行修改。...https://docs.docker.com/compose/ 插件存储库克隆工作站,然后这些新文件创建存储库根目录中: 创建 Dockerfile: FROM traefik:v2.5...为常规开发工作配置本地 DNS 服务 当你需要测试大量不同 Traefik Proxy Host 路由器规则时,一个更好 DNS 解决方案,而不是不断编辑你 /etc/hosts 文件,是在你工作站上运行...dnsmasq 作为本地 DNS 服务器,它会响应到通配符 DNS A 记录查询,用于整个根域名。...docker 主机正确 IP 地址,现在您可以在 Traefik 代理路由中使用您想要任何

    1K10

    如何使用Docker Compose安装Drupal

    我们配置文件包括一些Drupal特定位置块,以及一个位置块,该位置块Let’s Encrypt验证请求定向Certbot客户端以进行自动证书更新。...server_name :这定义了我们服务器名称用于请求服务器服务器块。 确保用您自己域名替换此行中your_domain 。...此外,此位置块包括特定于FastCGI指令,变量选项,这些指令请求代理到运行在我们Drupal容器Drupal应用程序,为解析请求URI设置首选索引,并解析URI请求。...Docker Compose服务是一个正在运行容器Compose允许我们这些服务与共享网络链接在一起。...在Nginx中安装SSL证书后,我们需要将所有HTTP请求重定向HTTPS。 我们还必须指定SSL证书密钥位置,并添加安全性参数标头。

    6K20

    Linux系统部署UI For Docker并实现远程访问Docker Compose Web可视化

    本篇文章dockercompose结合cpolar内网穿透软件实现公网访问docker compose web可视化界面,更直观进行远程编写。 1....如果有长期远程访问docker compose ui需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定二级域名地址方式来远程访问。 4....,点击编辑 修改隧道信息,刚才保留成功固定http地址:compose配置隧道中 域名类型:选择二级域名 预留http地址:复制粘贴官网保留成功地址,本例中为:compose 地区选择:China...接下来与之前操作一样,可以在其他电脑(异地)上,使用任意一个固定二级域名地址复制浏览器访问即可。 如上图所示,即为配置成功。...我们现在就能在公网使用cpolar内网穿透工具生成永久不变固定二级域名,使用任意浏览器远程访问docker compose ui了,无需购买域名服务器,也不用设置路由器那么麻烦,轻松实现大家远程访问本地服务需求

    23210

    手把手搭建一个容器化+代理网关+可视化管理环境

    Docker 网络环境,后续 Traefik 需要代理应用容器都需要部署在该网络环境下才可以被访问到 docker network create traefik 创建 docker-compose...https-traefik 路由,代理服务为 traefik-service # 监听域名为 traefik.togettoyou.com ,端口为 websecure (443) 流量请求...中间件, http 请求重定向 https,即重定向到了上面配置 https-traefik 路由 - "traefik.http.routers.http-traefik.service...中间件, http 请求重定向 https,即重定向到了上面配置 https-portainer 路由 - "traefik.http.routers.http-portainer.service...Traefik 监听着 80 443 端口,因此服务器只需要暴露出这两个端口,其他流量请求都交由 Traefik 来代理,基于 Traefik 配置发现机制,在部署我们容器应用时只要在 Label

    1.2K20

    Docker容器网络(七)

    Linux 网桥之间所有端口映射、安全规则管道工作都由网络驱动程序为我们处理,因为容器在集群中被调度重新调度。...macvlan Macvlan 网络允许您将 MAC 地址分配给容器,使其在您网络上显示为物理设备。Docker 守护进程通过它们 MAC 地址流量路由容器。...在下面的示例中,我们创建了两个连接到不同接口 MACVLAN 网络。这种类型配置可用于通过主机接口多个 L2 VLAN 直接扩展容器。VLAN 默认网关存在于外部网络中。...域名系统 在 Docker Desktop 内部有多个 DNS 服务器: 来自容器 DNS 请求首先由内部服务器处理,该服务器dockerd识别同一内部网络上其他容器名称。...然后根据域名请求转发到主机上两个不同 DNS 服务器之一。是特殊,包括解析为当前主机有效 IP 地址docker.internal DNS 名称。

    1K40

    SpringCloud-实用篇

    ①order值越小,优先级越高 ②当order值一样时,顺序是defaultFilter > 局部路由过滤器 > 全局过滤器 ⑥跨问题 ❶什么是跨问题 跨域名不一致就是跨,主要包括:...域名不同: www.taobao.com www.taobao.org 域名相同,端口不同:localhost:8080 localhost8081 跨问题:浏览器禁止请求发起者与服务端发生跨...Docker-compose 就是解决这个问题,它用来编排多个容器启动容器命令统一写到 docker-compose.yml 文件中,以后每次启动这一组容器时,只需要 docker-compose...cloud-demo项目,数据库、nacos地址都命名为docker-compose服务名 ③ 使用maven打包工具,项目中每个微服务都打包为app.jar ④ 打包好app.jar拷贝...进入cloud-demo目录,然后运行下面的命令: docker-compose up -d # 后台运行容器 其它命令 docker-compose build # 重新构建镜像 docker-compose

    1.6K20

    从零开始 - Docker部署前后端分离项目(三)

    host 'USER': 'root', 'PASSWORD': 'xiaozai123' } } # 方案一:允许跨域名列表 CORS_ALLOWED_ORIGINS...但是 /dev/null 文件非常有用,命令输出重定向它,会起到"禁止输出"效果。 创建超级用户账号密码,可以自己自行更改。 #! /bin/sh # 1....1、前端部署-前端vue项目 前端中所有用到后端接口,都需要改成对应部署所在服务器地址,如上文192.168.111.111 打包前端项目打包时候一定要修改host,打包完成之后,dist文件夹拷贝...; } #对应上面的@router,主要原因是路由路径资源并不是一个真实路径,所以无法找到具体文件 #因此需要rewriteindex.html中,然后交给路由在处理请求资源...1、编写docker-compose.yml文件 version: "3" services: # 要启动 容器服务 redis: # 容器名称 image: redis

    1.9K10

    构建你知识管理平台:在Linux上部署BookStack并实现远程访问

    而通过集成calibre工具,用户可以书籍生成并导出为PDF、ePub、Mobi等格式离线文档。 BookStack支持多种部署方式,包括手动安装Docker部署等。...本例以Docker Compose形式进行本地快速部署,并结合内网穿透技术本地服务发布公网,实现远程访问。 1....如果有长期远程访问本地 BookStack 书库或者其他本地部署服务需求,但又不想每天重新配置公网地址,还想地址好看又好记并体验更多功能与更快带宽,那我推荐大家选择使用固定二级域名方式来远程访问...,保留成功二级域名配置隧道中 域名类型:选择二级域名 Sub Domain:填写保留成功二级域名:mybooksk 地区:选择China VIP 点击更新(注意,点击一次更新即可,不需要重复提交...) 更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定二级域名名称域名: 接下来,再次回到终端中将书库docker-compose文件中随机公网地址替换为这个固定不变公网地址并重启

    5810

    你所不了解 Traefik

    作为一款革新边缘路由器 ,意味着 Traefik 是所构建整个应用平台守卫者,拦截并路由每一个接入请求:基于所设定逻辑规则,以确定哪些服务处理对应请求。...针对证书自定续订功能,也是 Traefik 组件强大功能之一,基于此,我们分别基于 HTTP DNS 两方面进行简要阐述。...它是 Traefik 一部分) 向 LE(Let's Encrypt,一种提供免费证书服务)请求特定证书,如,example.com。...LE 通过端口 80/443 查看包含该随机文本文件 IP 地址。 如果存在,那么这证明了请求证书的人同时控制服务器,因为它显示了对 DNS 记录控制。...基于 HttpChallenge 优势在于能够获得通配符证书。这些是验证所有 *.example.com 证书此外,不需要打开任何端口。

    1.4K50

    硬核技能k8s初体验

    2. k8s对象 Kubernetes对象代表系统中持久化实体,下面的实体都作为对象: 哪些容器化应用正在运行 这些应用程序可用资源 与这些应用程序有关行为&策略:重新启动策略、升级容错...Pod Kubernetes Pod是创建/部署k8s对象中最小最简单单元: 由于不能将多个进程聚集在一个单独容器,需要另外一种高级结构容器绑定在一起,作为一个单元管理,这就是Pod背后根本原理...,而是类似一种集群服务入口存在,它可以基于你配置不同路径或者域名把流量路由对应后端服务,更像是一个“智能路由”服务。.../102728050 阅读更多 使用Docker-Compose搭建高可用redis哨兵集群 谁说docker-compose不能水平扩展容器、服务多实例?...基于docker-composeGitlab CI/CD实践&排坑指南 实例解读Docker Swarm

    1.1K30

    你所不了解 Traefik

    作为一款革新边缘路由器 ,意味着 Traefik 是所构建整个应用平台守卫者,拦截并路由每一个接入请求:基于所设定逻辑规则,以确定哪些服务处理对应请求。...针对证书自定续订功能,也是 Traefik 组件强大功能之一,基于此,我们分别基于 HTTP DNS 两方面进行简要阐述。...它是 Traefik 一部分) 向 LE(Let's Encrypt,一种提供免费证书服务)请求特定证书,如,example.com。...LE 通过端口 80/443 查看包含该随机文本文件 IP 地址。      如果存在,那么这证明了请求证书的人同时控制服务器,因为它显示了对 DNS 记录控制。...基于 HttpChallenge 优势在于能够获得通配符证书。这些是验证所有 *.example.com 证书此外,不需要打开任何端口。

    95181

    Traefik v3.0 Docker 全面使用指南:基础篇

    Traefik Docker 基础容器配置 在展开详细 Traefik 容器配置优化调整之前,我们需要先来看看最简容器配置是什么样。...:/var/run/docker.sock:ro 使用上面的内容,更新之前保存 docker-compose.yml 文件,再次使用 docker compose up 启动 Traefik 容器服务...并且,在这个过程中,我们能够在我们声明路由中添加各种各样额外操作:添加认证、修改请求头、修改响应内容、进行重定向、进行限流、进行访问限制等等。...虽然使用 Docker 命令行可以看起来更短小精悍生成配置,但考虑清晰可读,我们还是创建一个 docker-compose.certs.yml 文件,来帮助我们生成 HTTPS 证书吧。...,所以这里定义真实服务多多少少会设计 Traefik 寻找匹配真实服务网络地址计算,我们可以使用 Traefik 内部一个“魔术变量”来进行服务替换,真实服务替换为一个空服务。

    2.5K20

    如何在Ubuntu上安装Drone持续集成环境

    Drone作为Docker容器分发,因此如果我们在Docker Compose文件中使用它,它将自动下载。...使用具有不同设置相同镜像,我们另一个容器作为Drone代理运行,该代理负责从配置存储库构建和测试软件。 我们将使用Docker Compose在Drone主机上运行这两个容器。...配置Nginx代理请求Drone 接下来,我们需要修改Nginx配置以代理对Drone服务器请求。首先找到处理腾讯云SSLNginx配置。...然后,我们调整一些其他特定于代理设置,以确保WebSocket代理正常工作,并确保我们组件可以有效地进行通信。 完成保存并关闭文件后。 测试并重新启动NginxDrone 我们配置现已完成。...我们Drone设为处理身份验证并侦听来自我们存储库更改。我们还配置了一个可以运行测试管理容器Drone代理。我们还将Nginx配置为安全反向代理。

    2.9K21

    本地搭建Trilium Notes轻松创建个人知识库并实现远程查看文档资料

    Excalidraw 来绘制图表(笔记类型“画布”) 关系图链接图,用于可视化笔记及其关系 脚本 - 请参阅高级功能展示 在拥有超过 10 万条笔记时仍能保持良好可用性性能 针对智能手机和平板电脑进行优化用于移动设备前端...启动容器运行镜像 执行下方命令启动容器运行镜像: sudo docker-compose up -d 如因网络问题拉取不到镜像,可尝试在终端执行 sudo nano /etc/docker/daemon.json...,查看所生成公网访问地址,生成了两种访问方式,一种是http https,任选其一浏览器访问即可。...【cpolar.cn已备案】 登录cpolar官网,点击左侧预留,选择保留二级域名,设置一个二级域名名称,点击保留,保留成功后复制保留二级域名名称:我以mytrilium为例,大家可以自己设置...返回登录cpolar web UI管理界面,点击左侧仪表盘隧道管理——隧道列表,找到所要配置隧道 Trilium,点击右侧编辑: 修改隧道信息,保留成功二级域名配置隧道中 域名类型:选择二级域名

    11210

    自部署busuanzi访问量统计服务

    官方服务 官方介绍:“不蒜”与百度统计谷歌分析等有区别:“不蒜”可直接访问次数显示在您在网页上(也可不显示);对于已经上线一段时间网站,“不蒜”允许您初始化首次数据。...这样就可以跟踪网站访问量访问者数量,同时保护数据隐私安全,不过该项目不支持导入数据,下面我介绍如何部署busuanzi及其部署后注意事项。...仅修改第三行跨访问内容,其他内容请不要动,修改后,删除原docker重新运行docker模板,即可防止跨访问,如果有其他网站试图使用,将会得到如下报错: 修改主页 如果你已经正确设置反向代理,你应该可以访问你域名并查看到以下内容.../data/redis/dump.rdb 在新服务器上 重新通过docker-compose up -d 启动服务后 停止服务 复制 dump.rdb 新服务器 ....cp redis_commands.txt :/tmp/,文件放到docker内部,等待后续写入redis,其中容器名称可以使用docker ps查看 分别执行:docker exec

    19010

    Istio入门实战与架构原理——使用Docker Compose搭建Service Mesh

    本文介绍如何使用Docker Compose搭建Istio。Istio号称支持多种平台(不仅仅Kubernetes)。...registrator:监听Docker服务进程,自动容器注册consul。 pilot:从consulistio-apiserver收集主机信息与配置数据,并下发到所有的sidecar。...这是Docker容器网络模式,意思是这两个容器productpage-v1共用同一个虚拟网卡,即它们在相同网络栈上。...pilot会将这个Listener路由写入这个map,并拒绝其他相同地址端口再来监听。于是只有第一个注册服务路由会生效,所有流量都会走到那个服务。...如果这个端口有指定使用HTTP协议的话,Pilot-discovery这里生成是一个RDS监听,这个RDS则根据域名路由正确地址。

    42620
    领券