Docker DNS 配置总结
在 Docker 中配置 DNS 通常有以下几种场景:
1. 配置 Docker 守护进程的默认 DNS
-
全局配置,适用于所有容器。
-
编辑配置文件:
- Linux 系统中,编辑
/etc/docker/daemon.json
文件:
{ "dns": ["8.8.8.8", "8.8.4.4"] }
- Linux 系统中,编辑
-
重新启动 Docker 服务:
sudo systemctl restart docker
2. 镜像构建时指定 DNS
-
通过
--network
选项配置自定义网络,并指定 DNS。 -
创建 Docker 网络并指定 DNS:
docker network create --driver=bridge --dns=8.8.8.8 custom_network
-
在构建镜像时,指定该网络:
docker build --network=custom_network -t your_image_name .
3. 在容器运行时指定 DNS
-
使用
--dns
参数,直接在docker run
时调整 DNS:docker run --dns=8.8.8.8 --dns=8.8.4.4 your_image_name
补充说明
- /etc/resolv.conf 文件:容器的 DNS 配置来源于宿主机的
/etc/resolv.conf
文件。宿主机配置正确时,可以省略手动指定。 - 使用私有 DNS:如果需要内部的 DNS(如公司内网 DNS 服务器),可以替换
8.8.8.8
为对应地址。 - 防止缓存问题:构建镜像时可能因 DNS 缓存引发问题,建议清理 DNS 缓存或在镜像构建过程中显式指定 DNS。
如有疑问,可提供更详细需求或问题背景。