当前位置:首页>开发>正文

docker容器里网络请求慢怎么解决 docker网络怎么配置/

2023-04-19 02:23:53 互联网 未知 开发

 docker容器里网络请求慢怎么解决 docker网络怎么配置/

docker容器里网络请求慢怎么解决

docker网络里的速度取决于你的网络模式和dns配置,具体看下面的博客介绍
docker容器内网络请求缓慢问题解决:
https://www.embbnux.com/2016/10/06/docker-container-network-too-slow-timeout/

docker网络怎么配置/


在你的宿主机启动docker的时候会多出一个 docker0 的虚拟网卡,然后容器都通过这个和外面通信。容器和docker宿主机之间是NAT的方式共享网络的,也就是说宿主机可以访问的资源,容器也是可以直接访问,你要使用apt-get,你就要保证你的宿主机可以上外网,否则免谈。

docker网络问题 怎么解决

网络基础
Docker 现有的网络模型主要是通过使用 Network namespace、Linux Bridge、iptables、veth pair 等技术实现的。(出处8)

Network namespace:它主要提供了网络资源的隔离,包括网络设备、IPv4/IPv6 协议栈、IP 路由表、防火墙、/proc/net 目录、/sys/class/net 目录、端口(socket)等。
Linux Bridge:功能相当于物理交换机,为连在其上的设备(容器)转发数据帧,如 docker0 网桥。
Iptables:主要为容器提供 NAT 以及容器网络安全。
veth pair:两个虚拟网卡组成的数据通道。在 Docker 中,用于连接 Docker 容器和 Linux Bridge。一端在容器中作为 eth0 网卡,另一端在 Linux Bridge 中作为网桥的一个端口。

容器的网络模式
用来设置网络接口的 docker run --net 命令,它的可用参数有四个:
none:关闭了 container 内的网络连接。容器有独立的 Network namespace,但并没有对其进行任何网络设置,如分配 veth pair 和网桥连接,配置 IP 等。
bridge:通过 veth 接口来连接其他 container。这是 docker 的默认选项。
host:允许 container 使用 host 的网络堆栈信息。容器和宿主机共享 Network namespace。
container:使用另外一个 container 的网络堆栈信息。kubernetes 中的 pod 就是多个容器共享一个 Network namespace。
我们需要从中选一个作为我们的网络方案,实际上只有 bridge 和 host 两种模式可选。(想了解这四个参数,请翻到附录B之 Network settings。)
在 docker 默认的网络环境下,单台主机上的容器可以通过 docker0 网桥直接通信,如下图(图作者冯明振)所示:

最新文章