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

Dockerfile构建执行apk update时出现DNS lookup错误如何解决

Alpine镜像构建apk命令DNS解析错误解决方案

核心原因

Docker 构建阶段默认使用 Docker daemon 配置的 DNS 服务器,和 docker run 运行容器时的网络DNS配置可能存在差异,因此会出现运行容器可以联网,但构建时apk解析官方源域名失败的问题。

解决方法

  • 临时方案1:构建时手动指定DNS服务器
    执行构建命令时添加--dns参数指定公共DNS:
    docker build --dns 8.8.8.8 --dns 114.114.114.114 .
    
  • 永久方案2:修改Docker daemon全局DNS配置
    编辑/etc/docker/daemon.json文件,添加DNS配置项:
    {
      "dns": ["8.8.8.8", "114.114.114.114"]
    }
    
    配置完成后重启Docker服务生效:
    systemctl restart docker
    
  • 兼容方案3:替换Alpine源为国内镜像绕开解析问题
    如果无法修改Docker配置,可在Dockerfile的apk操作前添加源替换命令,直接使用国内镜像源:
    # 在RUN apk update之前添加这一行
    RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
    

额外注意事项

你指定的openjdk8=8.151.12-r0为较旧版本,高版本Alpine的官方源已下架该版本。如果解决DNS问题后出现包不存在的报错,可将基础镜像更换为兼容该版本的Alpine 3.8:FROM alpine:3.8,或更新JAVA_ALPINE_VERSION为当前Alpine版本支持的openjdk8版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:06:04