Logspout无法连接到papertrail

时间:2017-09-01 14:08:30

标签: docker networking dns

我无法logspout连接到papertrail。我收到以下错误:

!! lookup logs5.papertrailapp.com on 127.0.0.11:53: read udp 127.0.0.1:46185->127.0.0.11:53: i/o timeout

每次运行容器时46185都会更改。这似乎是一个DNS错误,但nslookup logs5.papertrailapp.com给出了预期的输出,docker run busybox nslookup logs5.papertrailapp.com也是如此。

除此之外,我甚至不知道如何解释该错误消息,更不用说解决它了。任何帮助调试这将非常感激。

我的Docker撰写文件:

version: '2'
services:
    logspout:
        image: gliderlabs/logspout
        command: "syslog://logs5.papertrailapp.com:12345"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock

    sleep:
        image: benwhitehead/env-loop

12345是实际的papertrail端口。无论使用syslog://还是syslog-tls://,结果都是一样的。

2 个答案:

答案 0 :(得分:0)

来自https://docs.docker.com/engine/userguide/networking/configure-dns/

  

docker守护程序实现了一个嵌入式DNS服务器,它为任何容器提供内置服务发现

看起来您的容器无法连接到此DNS服务器。如果您的容器位于默认桥接网络上,则它将无法访问嵌入式DNS服务器。您可以将--dns设置为外部来源,也可以更新/etc/resolv.conf。它根本不像Papertrail问题。

source

答案 1 :(得分:0)

Docker和iptables发生了争执。因此,我启动了一台新机器,未能设置iptables,问题得以解决:根本没有防火墙妨碍Docker的连接!

开个玩笑,不要那样做。我有一个这样的玩具数据库被黑了。

幸运的是,现在使用DOCKER_USER iptables链相对容易实现iptables和Docker的和谐相处。

该解决方案摘自my blog

使用iptables=true配置Docker,并附加到iptables配置:

iptables -A DOCKER-USER -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A DOCKER-USER -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A DOCKER-USER -i eth0 -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A DOCKER-USER -i eth0 -j DROP