报错:bridge docker0 failed: exchange full
默认docker0网桥只支持1024个链接,超过1024会报bridge docker0 failed: exchange full
可以通过创建另外的网桥,docker run创建容器的时候指定我们自己的网桥来解除限制,当然咱们自己创建的网桥也只支持1024个,可以利用这个方法只要内存够用,就可以无限创建网桥,来创建docker容器
1、查看网桥
[root@bj ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
0c49b2d827f5 bridge bridge local
8ec28361848f host host local
3b929af4064c none null local
2、创建网桥
[root@bj ~]# docker network create xinnet
[root@bj ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
0c49b2d827f5 bridge bridge local
8ec28361848f host host local
3b929af4064c none null local
604ccc72661a xinnet bridge local
[root@bj ~]# docker network inspect xinnet
[
{
"Name": "xinnet",
"Id": "604ccc72661af52f0889bfea4664d70e899427418b1a9301d8a46e6ce95e46ee",
"Created": "2021-12-08T13:50:43.973901095+08:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"e92f81a6fe11b6e2c82de38fbe4e06a9cfcdb1dcd1f64485e5b805e3714bd163": {
"Name": "zabbix-agent-22000",
"EndpointID": "b7ac1a57b2e91435c676a7b4203ab50237893a3714aff185d8cdac45b1251356",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
3、创建容器指定网桥–network
[root@bj ~]# docker run -m 100m --name zabbix-agent-22001 --network=xinnet -e HOSTNAME="TEST22001" -e ZBX_HOSTNAME="TEST22001" -e ZBX_SERVER_HOST="10.20.9.246" -p 22001:10050 -e ZBX_SERVER_PORT=10051 -d zabbix-agent:4.0.35
[root@bj ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e92f81a6fe11 zabbix-agent:4.0.35 "/usr/bin/tini -- /u…" 15 minutes ago Up 15 minutes 0.0.0.0:22001->10050/tcp zabbix-agent-22001
如果不指定–network,创建的容器默认都会挂到 docker0 上,使用本地主机上 docker0 接口的 IP 作为所有容器的默认网关