
在 Docker 容器中运行应用程序时,容器会缓存 DNS 查询结果以提高性能。但是,您的应用程序需要连接到不同的服务器或 IP 地址,则需要清理容器的 DNS 缓存。
要清理 Docker 容器的 DNS 缓存,可以使用以下命令:
docker exec -it <container_name> /bin/bash
/etc/init.d/nscd restart
这将重启 DNS 缓存服务(nscd),清除缓存并强制容器重新进行 DNS 查询。
另一种方法是在容器启动时添加 --dns 参数,指定自定义的 DNS 服务器。这将覆盖容器中默认的 DNS 设置,避免使用缓存的 DNS 结果:
docker run -it --dns 8.8.8.8 --dns 8.8.4.4 <image_name>
您还可以在 Docker 容器的 /etc/resolv.conf 文件中指定 DNS 服务器,或者使用 Docker Compose 中的 dns 配置选项。
清理 Docker 容器的 DNS 缓存可以帮助您的应用程序及时获取最新的 DNS 信息,确保连接正常,提高应用程序的可靠性。