草庐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 - sys.stdin.readline() 无提示读取,返回 'nothing in between'

我有一个执行以下操作的函数(除其他外):userinput=stdin.readline()betAmount=int(userinput)应该将输入的整数从标准输入中作为字符串转换为整数。但是,当我调用该函数时,它会返回一个换行符(它甚至不等待我输入任何内容)。在程序的早期,我得到了以下形式的一些输入:stdin.read(1)捕获单个字符。这可能与它有关吗?我是否以某种方式将换行符写入标准输入的下一行?我该如何解决这个问题? 最佳答案 stdin.read(1)从stdin读取一个字符。如果此时要读取多个字符(例如,读入的一个字

python - python中的len()和sys.getsizeof()方法有什么区别?

当我运行以下代码时,我分别得到3和36作为答案。x="abd"printlen(x)printsys.getsizeof(x)谁能给我解释一下它们之间有什么区别? 最佳答案 它们根本不是一回事。len()查询容器中包含的项目数。对于字符数的字符串:Returnthelength(thenumberofitems)ofanobject.Theargumentmaybeasequence(string,tupleorlist)oramapping(dictionary).sys.getsizeof()另一方面返回对象的内存大小:Retu

python - 为什么分配给 sys.modules[__name__] 后 __name__ 的值会发生变化?

在尝试执行类似于ActiveState配方中标题为ConstantsinPython的操作时通过AlexMartelli,我遇到了意想不到的副作用(在Python2.7中),将类实例分配给sys.modules中的条目具有-即这样做显然会改变__name__到None如下面的代码片段所示(它破坏了配方中的部分代码):class_test(object):passimportsysprint'#__name__:%r'%__name__#__name__:'__main__'sys.modules[__name__]=_test()print'#__name__:%r'%__name__

python - sys 和 os.sys 有什么区别

sys和os.sys在python中有什么区别?我见过很多项目在导入os时使用sys。当我尝试dir(sys)和dir(os.sys)时,它们的功能相同,输出也相同。我经常看到像这样使用sys.exit的代码,而不是使用os.sys.exit,但两者都做同样的事情。importosimportsyssys.exit() 最佳答案 os.sys是os对sys的“私有(private)”名称;Python不会隐藏在另一个模块中执行的导入。您不应该依赖它的存在,而应该自己直接导入sys。 关于