1.docker容器部署Django
采用python脚本每1s 访问 DjangoAPI 超时,readtimeout
response = requests.post("http://www.baidu.com/", data = data,timeout=60)
2.解决方案
原来默认采用的是bridge模式,后改为host模式,jmeter测试吞吐率较大提升。
每1s 访问 DjangoAPI 超时问题得以解决,服务响应速度加快。
参考:docker4种网络模式
Docker四种网络模式(Bridge,Host,Container,None) - 大数据老司机 - 博客园
一、Docker网络模式简介
基于对Network Namespace的控制,docker可以为在容器创建隔离的网络环境,在隔离的网络环境下,容器具有完全独立的网络栈,与宿主机隔离,也可以使容器共享主机或者其他容器的网络命名空间,基本可以满足开发者在各种场景下的需要。按docker官方的说法,docker容器的网络有五种模式:
网络模式 | 简介 |
---|---|
Bridge(默认模式) | 此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。 |
Host | 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。 |
Container | 创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。 |
None | 该模式关闭了容器的网络功能,与宿主机、与其他容器都不连通的. |
二、默认网络
当你安装Docker时,它会自动创建三个网络(bridge、host、none)。你可以使用以下docker network ls命令列出这些网络:
<span style="color:#000000"><span style="background-color:#ffffff"><code class="language-bash">[root@centos8-nat-168-182-152 ~]<span style="color:#008000"># docker network ls</span>
NETWORK ID NAME DRIVER SCOPE
c0184302f6a8 bridge bridge <span style="color:#0000ff">local</span>
420492e04276 host host <span style