Docker:本地容器拥有本地域名

问题描述 投票:0回答:1

我目前正在做一些 devops,以便对我的工作进行更好的流程处理,并且我已经连续几个小时尝试以某种方式为我的 docker 容器提供一些私有本地域,而不是通过 localhost:port。

我一直在尝试配置 traefik、nginx 和 dnsmasq 来实现我想要的,但我什至不确定我是否需要自定义 dns 或反向代理或两者都需要。

我最常用的是 traefik,但总是使用付费域名,而且效果很好。

我已经阅读了很多论坛和教程来尝试执行此操作,但我似乎发现的所有内容都不起作用或者我做错了。

我想做的就是例如:

  • 使用 url http://docker.dev本地访问 localhost:8069 上的一个 docker,使用 http://otherdocker.dev.
  • 访问 localhost:3000 上的另一个 docker。
  • 将所有配置放在一两个 docker compose 中,例如:1 个包含应用程序和网络,或者 1 个包含应用程序,1 个包含所有应用程序的网络。

我真的不在乎最终网址是否像http://docker.dev或类似http://local.dev/docker只要我可以为我的docker设置特定的域/子域。

我的设置的一些精确性:

重点是运行多个 odoo docker,而无需每次切换浏览器页面时重新登录,因为连接令牌链接到 url localhost。 另外,我希望能够有很多格式化的网址来访问这些泊坞窗的每个端口,以获得特定的应用程序,例如 http://odoo17.dev + http://shell17.dev 等。

如果有人知道如何在不通过付费域名并将我的设置打开到网络的情况下执行此操作,我将不胜感激地得到一些提示。 谢谢

docker nginx docker-compose dns traefik
1个回答
0
投票
您可以使用任何以

localhost

 结尾的内容都会发送到本地计算机。

例如,要在 Traefik 后面运行 2 个容器,您可以有一个像这样的 docker compose 文件

services: traefik: image: traefik:v2.6.6 command: --api.insecure=true --providers.docker ports: - '80:80' - '8888:8080' volumes: - /var/run/docker.sock:/var/run/docker.sock whoami: image: traefik/whoami labels: - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)" nginx: image: nginx labels: - "traefik.http.routers.nginx.rule=Host(`nginx.docker.localhost`)"
然后,前往 

whoami.docker.localhost

 的流量将路由至一个容器,前往 
nginx.docker.localhost
 的流量将路由至另一个容器。

© www.soinside.com 2019 - 2024. All rights reserved.