You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器内Python测试异常、构建失败,需重启Docker才能解决的问题求助

Docker环境下Python测试挂起及构建超时问题

问题描述

  • 初始操作:使用docker-compose up -d --build启动所有服务,构建完成后运行正常;通过docker exec -it <name> /bin/bash进入容器执行py.test <path to file>,测试运行正常。
  • 异常现象:
    1. 修改容器内Python文件后,执行py.test陷入挂起,无法运行。
    2. 退出容器后重新执行docker-compose up -d --build,出现镜像拉取超时错误:
=> ERROR [internal] load metadata for docker.io/mdillon/postgis:10
------
 > [internal] load metadata for docker.io/mdillon/postgis:10:
------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to do request: Head "https://registry-1.docker.io/v2/mdillon/postgis/manifests/10": proxyconnect tcp: dial tcp: lookup http.docker.internal on 192.xxx.xx.x:xx: read udp 192.xxx.xx.x:xxxxx->192.xxx.xx.x:xx: i/o timeout
ERROR: Service 'pgdb' failed to build : Build failed
  • 临时解决方案:通过Docker仪表盘或服务重启Docker应用,几秒后恢复正常,再次执行docker-compose可正常运行,测试也能正常执行。
  • 补充信息:
    • 连接公司VPN与否对问题无影响。
    • 更新:无需修改文件,Docker运行一段时间后执行py.test也会挂起,仅靠退出容器、重启Docker、重新执行docker-compose可恢复。
    • 更新2:停止所有容器后重启无法解决问题,必须重启Docker应用再重启容器才能恢复。

问题原因分析

1. Docker网络栈与DNS解析异常

错误日志明确显示lookup http.docker.internal超时,说明Docker内部DNS解析机制出现故障,无法正常解析代理或镜像仓库地址。Docker运行过程中,网络栈可能因连接堆积、资源泄漏等问题逐渐失效:

  • 镜像拉取时因无法解析代理地址,出现连接超时;
  • 容器内的py.test进程可能因依赖的数据库等服务连接异常,陷入无限等待状态。
    仅重启容器无法重置Docker全局网络栈,只有重启Docker应用才能彻底刷新网络配置和DNS缓存,恢复解析能力。

2. Docker守护进程资源泄漏

Docker守护进程(dockerd)长期运行后,可能出现内存泄漏、线程堆积等问题,导致其无法正常处理容器请求、网络请求或镜像拉取操作:

  • 守护进程状态异常时,容器内的进程调度、资源分配会受影响,引发py.test挂起;
  • 镜像拉取请求无法被正常处理,出现超时错误。
    重启Docker应用会重置守护进程状态,释放占用的资源,恢复正常服务能力。

3. 容器文件系统与进程状态异常

直接修改容器内的Python文件会创建Docker可写层,长期运行或频繁修改可能导致分层文件系统出现异常:

  • 文件句柄泄漏、资源占用异常,导致后续py.test执行时出现死锁;
  • 即使未修改文件,容器内进程长期运行后内存、文件描述符耗尽,也会引发测试进程挂起。
    仅重启容器无法修复文件系统的分层异常,需重启Docker应用配合重新构建容器来解决。

4. 代理配置隐性冲突

错误日志提到proxyconnect tcp,说明Docker配置了代理,但代理地址http.docker.internal无法被解析:

  • 即使未连接VPN,Docker的代理配置可能残留无效设置,或代理服务本身异常,导致镜像拉取时无法正常通过代理连接Docker Hub;
  • 重启Docker会重新加载代理配置,暂时修复连接问题。

内容的提问来源于stack exchange,提问作者Em Ae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 23:55:32