最近在 docker 里经常遇到域名无法解析的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
strong class="green">Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
f1ynnv2

最近在 docker 里经常遇到域名无法解析的问题

  •  
  •   f1ynnv2 Jun 7, 2023 2331 views
    This topic created in 1057 days ago, the information mentioned may be changed or developed.

    用 Python 写了个简单的 app ,和几个网站交互,都出现过域名无法解析的异常。

    下面是通过 imap 连接腾讯邮箱(imap.exmail.qq.com)时的报错,其实连接其它网站的时候都出现过这类提示,高峰的时候大概 20 分钟异常一次,低的时候一天有 3 ,4 次。

    2023-06-07 16:45:17,483 [ERROR][lib_email.py->fetch_email][115] Traceback (most recent call last): File "/opt/app/lib_email.py", line 32, in fetch_email imapClient = IMAPClient(self.imap_server, ssl= True) File "/usr/local/lib/python3.9/site-packages/imapclient/imapclient.py", line 285, in __init__ self._imap = self._create_IMAP4() File "/usr/local/lib/python3.9/site-packages/imapclient/imapclient.py", line 322, in _create_IMAP4 return tls.IMAP4_TLS( File "/usr/local/lib/python3.9/site-packages/imapclient/tls.py", line 44, in __init__ imaplib.IMAP4.__init__(self, host, port) File "/usr/local/lib/python3.9/imaplib.py", line 202, in __init__ self.open(host, port, timeout) File "/usr/local/lib/python3.9/site-packages/imapclient/tls.py", line 49, in open sock = socket.create_connection( File "/usr/local/lib/python3.9/socket.py", line 823, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): File "/usr/local/lib/python3.9/socket.py", line 954, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno -3] Temporary failure in name resolution 

    我在 Docker 镜像里直接修改过 /etc/resolv.conf 使用 8.8.8.8 ,223.5.5.5 也修改过宿主机的 daemon.json 使用上述 DNS, 但是都没啥效果。

    好像是从 4 月份开始的,真的是诡异,不知道大家有没有什么思路去追查或者解决?谢谢

    12 replies    2023-06-17 11:29:32 +08:00
    wheat0r
        1
    wheat0r  
       Jun 7, 2023
    不熟悉,听说 alpine 有祖传 dns 问题
    whoosy
        2
    whoosy  
       Jun 7, 2023
    确定下相关代码在宿主机上跑有没有问题
    f1ynnv2
        3
    f1ynnv2  
    OP
       Jun 7, 2023
    @wheat0r 用的是 Debian 的镜像
    f1ynnv2
        4
    f1ynnv2  
    OP
       Jun 7, 2023
    @whoosy 直觉上感觉应该没问题,不过我来验证一下。我在镜像里和宿主机上一直跑个 ping 写日志,看看下次镜像里 app 出错时,两个 ping 日志是啥情况。
    Judoon
        5
    Judoon  
       Jun 7, 2023
    换本地 dns 缓存服务器试试,可能 udp 丢包问题
    jdOY
        6
    jdOY  
       Jun 7, 2023
    抓包看看一切都清楚
    yuikns
        7
    yuikns  
       Jun 8, 2023
    8.8.8.8 不太牢靠吧。如果国内比较在乎这个问题的话,试试企业的公共 dns 。比如腾讯的 119.29.29.29
    photon006
        8
    photon006  
       Jun 8, 2023
    我遇到过,干脆内网环境用 adguardhome 自建 dns 服务,启动 docker 容器指向它,现在稳了

    docker run -d --name myName --restart=always --init -e TZ=Asia/Shanghai --dns="10.13.1.50" --network=host image
    f1ynnv2
        9
    f1ynnv2  
    OP
       Jun 8, 2023
    @photon006 有道理,我先在镜像里直接编辑 hosts ,把常用的几个域名 ip 写死试试。
    stcQ2G13k9yxep40
        10
    stcQ2G13k9yxep40  
       Jun 8, 2023
    也许是域名本身的问题,反诈中心 96110 最近拦截了很多域名
    f1ynnv2
        11
    f1ynnv2  
    OP
       Jun 8, 2023
    试了下,在 docker compose 文件里通过 extra_hosts:把用到的几个域名写死,暂时没再遇到这问题了。

    不理解这基本的 DNS 解析为啥还老出错,114.114.114.114, 223.5.5.5, 8.8.8.8 都轮番试过。
    guanzhangzhang
        12
    guanzhangzhang  
       Jun 17, 2023
    你 dns 上有换 doh 之类的非 udp53 试试
    About     Help     Advertise     Blog     API     FAQ     Solana     5725 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 06:17 PVG 14:17 LAX 23:17 JFK 02:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86