如何在本地网络中使用Traefik和Docker设置子域名?

3
我有一个连接家庭路由器、运行Ubuntu 20.04和Docker的树莓派。我为其分配了一个固定的IP地址,并在本地网络中使用raspy.local作为主机名。我可以通过raspy.local:<端口号>访问Docker容器。
我希望能够通过子域名,如influxdb.raspy.localtraefik.raspy.local等来访问Docker容器。唯一有效的解决方案是将Traefik作为Docker容器运行,设置Host(`<subdomain>.raspy.local`)规则,并编辑我的笔记本电脑上的/etc/hosts文件,以使子域名指向树莓派的IP地址。
这不是一个好的解决方案,因为每次更改时都必须编辑/etc/hosts文件,并且无法在我的网络上的所有设备上执行此操作(例如,我无法在智能手机上执行此操作)。
正确的做法是什么?
(我在SO上找到了其他类似的问题,但我没有找到一个关于如何在本地网络中实现此目标的答案。)
1个回答

1
您需要设置本地DNS服务器:
  1. 在RPi上设置静态IP,并安装PiHole。
  2. 在PiHole DNS配置中为每个子域设置A记录,将其指向运行Traefik的设备的IP(在您的情况下是同一台RPi)(例如:A subdomain.raspy.local -> 192.168.0.xxx)
  3. 将主路由器DNS IP地址设置为PiHole服务器的地址。
现在,连接到路由器的每个设备都可以使用域名访问Traefik服务器。
#30daysofstackoverflow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接