草庐IT

docker - 为什么使用 DOCKER_OPTS ="--iptables=false"会破坏 docker-compose 的 DNS 发现?

当我将此行添加到我的/etc/default/docker时DOCKER_OPTS="--iptables=false"然后DNS不再工作。由dockercompose启动的一组容器再也找不到彼此了:version:'2'services:elasticsearch:image:elasticsearch:latestvolumes:-./esdata:/usr/share/elasticsearch/datakibana:image:kibana:latestenvironment:-ELASTICSEARCH_URL=http://elasticsearch:9200当设置ipta

node.js - Docker DNS getaddrinfo ENOTFOUND

我正在使用node:4.2.1-wheezy和dnsdock容器运行docker-compose。我在/etc/default/docker中有DOCKER_OPTS="--dns172.17.42.1"。当我在node.js容器中运行node-e"require('dns').resolve('host_name_here')"时,主机通过172.17.42.1dns服务器正确解析。但是当我运行node-e"require('dns').lookup('host_name_here')"时,它会因ENOTFOUND错误而失败。问题是http.request使用dns.lookup而不

nginx - 如何在 Nginx 上游使用 Docker swarm DNS/服务名称

我有一个跨4个swarm节点(ServiceA)运行的服务和一个跨同一个Swarm上的4个节点运行的Nginx服务。Nginx服务公开/发布端口80和443。所有服务都连接到同一个用户定义的覆盖网络,最重要的是,我可以从容器内curl/ping服务名称(ServiceA),所以到目前为止一切正常。我的问题是如何让Nginx上游使用服务名称?我已经阅读了很多并尝试将其添加到nginx.confresolver127.0.0.11ipv6=off;但它没有帮助并且Nginx服务将无法启动。关于如何让Nginx查看Docker网络DNS名称的任何想法?这是我的nginx.confevents

docker - 从主机查询 docker 内嵌的 dns

有人知道查询docker守护进程使用的嵌入式dns服务器的方法吗?我正在尝试使用packetbeats,如果我可以用容器名称替换dockerip地址会很有用。我目前能想到的唯一方法是在容器中创建一个dns服务器,该容器可以配置为主机的dns服务器,以确保主机可以解析容器名称。希望这有意义吗?这是唯一的方法还是有其他选择?我尝试查询的容器是使用docker-compose创建的。 最佳答案 领事我喜欢为此使用Hashicorp的Consul。它可以作为已安装的客户端或容器运行,并提供DNS接口(interface),您可以在Docke

Nginx 无法从 docker 1.10.1 中的嵌入式 DNS 获取主机

我有几个服务在docker容器中运行,它们前面有一个nginx服务器,所有容器都在同一个docker网络中。在docker1.10之前,我创建了一个dnsmasq容器并在nginx中为其设置了解析器,以便可以从nginx发现我的服务。但是升级到docker1.10.1之后,dnsmasq镜像就不行了。经过一番研究,我尝试使用来自地址127.0.0.11的新“嵌入式dns”(我认为这应该是在docker网络中使用的正确方法)。虽然我可以从nginx容器ping到服务容器,但是nginx一直发回无法解析(3:找不到主机)。然后我尝试使用host命令,我得到了非常困惑的结果:(第一个ip地址

docker - 使用主机上的领事 DNS 解析容器

目的:获取一个docker容器,使用宿主机提供的DNS,它是运行在另一个容器中的consul代理,通过traefik反向代理访问可用的服务。设置主机:Ubuntu16.04.2LTSRegistrator向consul代理注册新容器,traefik是反向代理,用于负载平衡服务并使其可用。当您点击“/”路径时,有一个通用节点应用程序会返回“HelloWorld”容器1。dockerrun-d--net=hostconsulagent-dev容器2。dockerrun-d--name=registrator--net=host--volume=/var/run/docker.sock:/t

python - 使用 dns.resolver (pythondns) 设置特定的 DNS 服务器

我正在使用来自dnspython的dns.resolver.是否可以设置服务器的IP地址用于查询? 最佳答案 虽然这是一个老话题,但我会加入。我遇到了同样的挑战,我想我会分享解决方案。因此,基本上配置文件将填充您正在使用的dns.resolver.Resolver的“名称服务器”实例变量。因此,如果您想强制您的解析器使用特定的名称服务器,您可以直接这样做:importdns.resolvermy_resolver=dns.resolver.Resolver()#8.8.8.8isGoogle'spublicDNSservermy_r

python - 如何在 Python 中进行 DNS 查找,包括引用/etc/hosts?

dnspython会很好地完成我的DNS查找,但它完全忽略了/etc/hosts的内容。是否有一个python库调用可以做正确的事情?即首先检查etc/hosts,否则只回退到DNS查找? 最佳答案 我不确定您是要自己进行DNS查找,还是只需要主机的ip。如果你想要后者,/!\socket.gethostbynameisdeprecated,prefersocket.getaddrinfo来自mangethostbyname:Thegethostbyname*(),gethostbyaddr*(),[...]functionsare

java - 将字符串转换为 InetAddress 而不进行 DNS 查找

我在String中有一个以点分十进制表示的本地IP地址。我想将其转换为InetAddress以将其提供给Socket,但我需要在不进行DNS查找的情况下执行此操作(因为这可能会导致长时间超时)。是否有现成的方法,或者我需要拆分String并从其字节创建InetAddress?Update工厂方法InetAddress.getByName()和InetAddress.getByAddress()似乎不太合适,因为它们都接受主机名,例如java.sun.com。没有人说他们是否会在实现过程中尝试联系DNS服务器。 最佳答案 这样做Ine

java - Java中的非阻塞(异步)DNS解析

是否有一种干净的方法可以在Java中以非阻塞方式异步解析DNS查询(通过主机名获取IP)(即状态机,而不是1个查询=1个线程-我想运行数万个查询同时,但不运行数万个线程)?到目前为止我发现了什么:标准InetAddress.getByName()实现是阻塞的,看起来标准Java库缺少任何非阻塞实现。ResolvingDNSinbulkquestion讨论了类似的问题,但找到的唯一解决方案是多线程方法(即一个线程在每个给定时刻仅处理1个查询),这不是真正可扩展的。dnsjava库也只是阻塞。有ancientnon-blockingextensionstodnsjava可以追溯到2006年