【发布时间】:2020-09-11 23:37:48
【问题描述】:
我有一个非容器化的 nginx 实例作为容器化和非容器化服务的反向代理。
由于容器 IP 可以在重启时更改,我不想在 nginx 配置文件中使用它们。我一直在寻找一种简单的方法来引用容器。 Docker 容器可以通过容器名称相互引用,即容器名称的 DNS 查找给出容器的 IP。我正在寻找类似的东西,但名称应该可以从主机操作系统解析。
约束:
解决方案应适用于现有容器。所以没有docker run ... 命令
我已经尝试过 mageddo/dns-proxy-server。它应该可以解析容器名称,但即使在设置了正确的环境变量后也无法解析。
sudo docker run -d \
--restart unless-stopped \
--name dns-proxy-server \
-p 5380:5380 \
-e MG_REGISTER_CONTAINER_NAMES=true \
--hostname dns.mageddo \
-v /opt/dns-proxy-server/conf:/app/conf \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/resolv.conf:/etc/resolv.conf defreitas/dns-proxy-server
PS:虽然以 Nginx 为例,但 DNS 查找功能在很多其他场景中都有帮助。所以我正在寻找 DNS 查找解决方案,而不仅仅是解决 nginx 问题。
【问题讨论】:
标签: linux docker ubuntu dns dnsmasq