You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Docker容器内执行apk update触发Bad file descriptor错误的原因与解决咨询

解决Docker容器内root身份运行apk update时的Bad file descriptor错误

我之前帮朋友排查过这个问题,刚好社区里也有不少人碰到相同的情况——像「CDN似乎宕机无法使用镜像」「仓库问题?」这两个讨论热度很高的议题,都是关于这个报错的。这里给你两个经过验证的解决思路:

  • 调整Docker主机的DNS配置:这个报错本质是DNS解析异常导致的,你可以把谷歌公共DNS服务器(8.8.8.8、8.8.4.4)添加到Docker守护进程的配置文件中。具体操作如下:

    1. 找到Docker守护进程的配置文件(通常是/etc/docker/daemon.json,如果不存在就新建一个)
    2. 添加或修改DNS配置内容:
      {
        "dns": ["8.8.8.8", "8.8.4.4"]
      }
      
    3. 保存文件后重启Docker服务,让配置生效
  • 在Dockerfile中替换apk镜像源:直接在构建镜像时指定可用的apk镜像源,绕开原有的解析问题。比如在Dockerfile中添加以下内容:

    # 替换为Yandex的Alpine镜像源(也可以换成你本地可用的其他源)
    RUN echo http://mirror.yandex.ru/mirrors/alpine/v3.18/main/ > /etc/apk/repositories
    RUN echo http://mirror.yandex.ru/mirrors/alpine/v3.18/community/ >> /etc/apk/repositories
    # 再执行更新命令
    RUN apk update
    

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

火山引擎 最新活动