docker build alpine dns error
使用 alpine 构建 Ddockerfile ,导致 docker 打包失败,错误如下:
1 | fetch https://mirrors.aliyun.com/alpine/v3.13/main/x86_64/APKINDEX.tar.gz |
用于打包的 Dockerfile 非常的简单,这里去掉了其他无关的内容。
1 | FROM alpine:latest |
Dockerfile 使用了 alpine 的镜像,将源替换为了阿里的源,最后执行 apk update
更新。
在执行 api update
时出错。
这里报错提示为 DNS lookup error
.
在 docker 文档 [https://docs.docker.com/config/containers/container-networking/](https://docs.docker.com/config/containers/container-networking/)
中关于dns的描述
The IP address of a DNS server. To specify multiple DNS servers, use multiple –dns flags. If the container cannot reach any of the IP addresses you specify, Google’s public DNS server 8.8.8.8 is added, so that your container can resolve internet domains.
也就是说,容器在 build 的时候可能会使用 8.8.8.8
这个地址作为 dns 服务。而google 的 dns 服务在国内基本上都是处于不可用的状态。
解决方法
在/etc/docker/daemon.json
配置文件中指定 dns 配置,比如
1 | "dns":["223.5.5.5"] |
docker build alpine dns error