docker进入容器里面很慢时什么原因?你所使用的宿主机操作系统发行版,和容器中基础镜像的发行版很有可能存在区别。本地的发行版软件源一般会是国内地址,而官方镜像中的源一般都是国外的源。
由于国内网络的原因,连接国外的源很有可能非常慢。所以,容器内的基础镜像中使用国外源的话,在容器在国内运行,apt-get update 会非常慢。
还有一点需要注意:容器的DNS问题。一旦运行docker daemon或者docker run时没有指定dns的,并且宿主机的默认dns为127.0.0.1,那么docker daemon会自动给容器配置dns为8.8.4.4和8.8.8.8,而这两个DNS地址在国内使用时不是很稳定,所以,也存在域名解析缓慢甚至被阻的情况。
docker容器里网络请求慢的问题
经过抓包测试等分析,发现网络请求慢,主要发生在dns解析中,所以主要采取dns优化。
如果请求的是自己内网的api, 可以直接修改/hosts文件,如果是外网的请求可以通过更改/resolv.conf里的nameserver实现。
docker容器肯定不是直接通过修改文件实现的,可以通过run的命令实现:
# 添加host docker run --name app --add-host=':10.98.10.98' -d ubuntu # 指定dns server docker run --name app --dns=223.5.5.5 --dns=8.8.8.8 -d ubuntu
这样在docker容器里dns解析阶段的时间就被加速了
融亿云的容器云产品是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,弹性轻量,高可用的的容器云