在docker环境中设置子域

2024-02-08

我在家里的 Ubuntu 服务器 (14.04 Trusty Tahr) 上的 Docker 容器中运行不同的服务。我目前的设置如下:

  • 詹金斯 jenkins.slarti
  • gitlab.slarti 下的 Gitlab 和 Leanlabs.io
  • servlet.slarti (apache tomcat) 下的 Java Servlet Web 服务器
  • “普通”Web 服务器和 web.slarti (nginx)

这些域是虚拟主机的,我已经设置了 nginx 代理。

Nginx-proxy docker 运行:

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy

詹金斯码头运行:

docker run -d --name jenkinsci --expose 8080 -e VIRTUAL_HOST=jenkins.slarti -e VIRTUAL_PORT=8080 jenkins

正常的网络服务器 docker 运行:

sudo docker run --name nginx1 -P -d --expose 80 -e VIRTUAL_HOST=web.slarti nginx

Gitlab 和 Leanlabs.io docker 运行:

docker run -d  --link kanban_redis:kanban_redis -p 80:80 -e KANBAN_SERVER_HOSTNAME="http://localhost"  -e KANBAN_GITLAB_URL="http://mygitlab.com"  -e  KANBAN_REDIS_ADDR="kanban_redis:6379" --expose 80 -e VIRTUAL_HOST=gitlab.slarti leanlabs/kanban:1.4.0

Apache Tomcat docker 运行:

docker run -it --rm -p 8888:8090 -e VIRTUAL_HOST=servlet.slarti tomcat:8.0

我按照这个指南进行了设置http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker http://blog.florianlopes.io/host-multiple-websites-on-single-host-docker/

目前我无法 ping web.slarti、servlet.slarti 等。如果我在浏览器中输入这些域的 URL,我也无法访问这些域。

我可以通过 slarti:8888 访问 Apache Tomcat,但我想通过 servlet.slarti 访问它,但由于我没有 DNS 设置而失败。

我需要做什么才能到达子域 web.slarti、servlet.slarti 等?如何正确设置反向代理以便能够访问域?我该如何配置 DNS?


我不是网络专家。但读完你的帖子后,看来你确实需要这样的 DNS 配置:

A -> slarti (or IP)
CNAME jenkins.slarti -> slarti
CNAME gitlab.slarti -> slarti
CNAME servlet.slarti -> slarti
CNAME web.slarti -> slarti

这就是我将子域重定向到 Docker 容器的方法。

如果没有正确的 DNS 配置,您的子域将无法访问。

使用此 DNS 配置,每次请求时gitlab.slarti,您实际上到达了 Nginx,它又将您重定向到正确的 Docker 容器(如果虚拟主机环境变量配置为gitlab.slarti).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在docker环境中设置子域 的相关文章

随机推荐

  • ruby 中日期的比较

    如何将特定日期与今天进行比较以了解该特定日期是否大于今天 谢谢哈里什 date 2010 07 20 to date 20th July today Date today 21st July if date gt today puts da
  • 在导出 Android 应用程序向导中为 Android 应用程序生成密钥库?

    我正在尝试在 Eclipse 中导出已签名的 Android 应用程序 我认为我正朝着正确的方向前进 右键单击项目 gt 安卓工具 gt 导出已签名的申请包 将出现 导出 Android 应用程序 向导 选择我要导出的项目 点击Next 出
  • 如何使用 Objective C 在 SQLITE 中启用外键约束

    今天我注意到我的 SQLite 表上的外键约束不起作用 在阅读 Stack Overflow 后 我发现应该启用此功能 所以 我正在寻找执行此操作的代码片段 到目前为止 我只能找到这个 self db executeUpdate PRAGM
  • 在VBA中同时设置单元格左边框和右边框

    想知道是否有办法用一条语句设置单元格的左边框和右边框 类似的东西msgBox配置可以组合 添加在一起 例如vbYesNo vbQuestion 我试过 Cells j i Borders xlEdgeLeft xlEdgeRight 这给我
  • 如何使用 SQL Server 数据库中的值填充列表?

    该列表将根据我的数据库中有多少项目而增长和缩小 我需要填充列表而不是列表框 我知道我需要打开一个连接 using var conn new SqlConnection Properties Settings Default DBConnec
  • java bean如何将多个对象封装成一个

    在定义中说 java bean将许多对象封装成一个对象 Bean 这里的 许多对象 是什么意思以及java bean如何将它们封装成一个对象 None
  • 如何在 python 中使用 ipython 笔记本 Markdown 单元格的内容

    在 IPython 中 我们可以通过以下方式获取先前的输出和输入Out n and In n 变量 是否可以使用 Markdown 笔记本单元的内容并在 python 中使用它 我想在 Markdown 单元格中写入一些文本 This is
  • TouchsMoved 以不规则的间隔调用

    我正在为 iOS 制作一款游戏 您主要在屏幕上拖动大对象 当我在实际的 iPad iPhone 上运行游戏一段时间 连续在屏幕上画圈拖动对象 时 每隔 5 分钟左右拖动的对象会卡顿约 10 30 秒 然后 它又恢复如丝般光滑的移动状态 从视
  • Delphi中如何区分多个键盘?

    我的电脑上连接了两个键盘 一个用于输入 TMemo1 另一个用于输入 TMemo2 两者都可以同时打字 问题是我无法区分键盘一输入的内容和键盘二输入的内容 有没有办法区分某些输入来自哪个设备 Dian 你可以使用注册原始输入设备 http
  • struct.error:解包需要长度为 16 的字符串参数

    处理 PDF 时文件 2 pdf https yadi sk i 2vABlTaexZerg使用 pdfminer pdf2txt py 我收到以下错误 pdf2txt py 2 pdf Traceback most recent call
  • 以编程方式将产品添加到购物车并更改价格

    我想以编程方式将产品添加到购物车 另外 我想在添加到购物车时更改产品价格 假设我的产品价格是 100 美元 添加到购物车后我想将其更改为 90 美元 我将产品添加到购物车 但是 我无法更改产品价格 是否可以 以下是将产品添加到购物车的代码
  • 使用 nginx/gunicorn 进行 Django 文件上传 - 媒体权限

    我试图允许 django 站点的用户通过模型上的 FileField 将文件 主要是 PDF 上传到我的服务器 但是 当我尝试使用我的模型表单生成的上传字段时 我不断遇到 Errno 13 Permission Denied 我在四处寻找时
  • ConcurrentDictionary.GetOrAdd 真的是线程安全的吗?

    我有这段代码 如果该任务是为相同的输入创建的 我想等待正在进行的任务 这是我正在做的事情的最小再现 private static ConcurrentDictionary
  • Jetty SSL 配置 Apache karaf

    我正在尝试配置 Jetty 以在 Apache Karaf OSGI 容器中使用 SSL http 有效 但 https 无效 可能是什么问题呢 我的配置详细信息如下 等 jetty xml
  • 在 Weblogic 中配置容器管理的安全性

    有人知道这方面的任何指南吗 我是 weblogic 和容器管理安全性的新手 我已经做的是 在 Weblogic 中设置 LDAP 身份验证器 在 Eclipse 中创建一个简单的 Web 应用程序 配置 web xml 添加了 securi
  • 使用 ClassFileTransformer.transform 进行字节码检测

    我写了一个类premain方法并在该方法中我添加了一个ClassFileTransformer to Instrumentation Instrumentation addTransformer 我已经使用调用了一个应用程序 java ja
  • Django 中的对象所有权

    我想知道如何使用 django 模型完成一个简单的 对象所有权 系统 这样默认情况下 只有对象的所有者可以编辑它 我试图允许 管理 组代表对象所有者编辑所有对象 并且此时添加了自定义权限 class Meta permissions man
  • MS Excel 从上到下查找列

    我在寻找 LOOKUP 从上到下搜索列的方法时遇到问题 情况是这样的 我需要为 Excel 创建一个公式来搜索句子中的硬件部分 例子 句子 A1 客户电脑无法开机 检查主板 主板故障 更换主板 PSU 电量不足 更换电源 这是查找范围列 硬
  • 如何在角度组件 Angular 1.5 及以上版本中使用 $compile

    我正在从指令迁移到组件 但使用 compile As 时出现错误 compile ReturnDomElement scope 应该使用什么来代替 scope 因为我没有在我的组件中注入 scope None
  • 在docker环境中设置子域

    我在家里的 Ubuntu 服务器 14 04 Trusty Tahr 上的 Docker 容器中运行不同的服务 我目前的设置如下 詹金斯 jenkins slarti gitlab slarti 下的 Gitlab 和 Leanlabs i