容器中使用nscd缓存优化 DNS 解析

关联k8s pod php dockerphp

原由

偶尔会出现找不到 DNS 的报错 php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution [tcp://xxx.redis.rds.aliyuncs.com:6379]redis

优化 DNS 解析

在请求域名时,DNS 解析可能会超时或者失败致使网站没法访问。操做系统上通常会启用 nscd 服务用于作 DNS 的缓存以便避免 DNS 解析失败。但容器的镜像中通常不会配置 nscd 服务,您能够在常常作 DNS 解析的容器上安装 nscd 服务来优化容器中的 DNS 解析。docker

您须要首先安装 nscd 软件包,而后在容器启动的时候首先启动 nscd 服务,再启动本身的进程。缓存

FROM php:7.1-fpm-stretch
RUN apt-get update && apt-get install -y nscd && rm -rf /var/lib/apt/lists/*
CMD service nscd start; bash
相关文章
相关标签/搜索