Docker虚拟网卡

1.创建Docker网卡

1
2
3
4
5
6
7
8
docker network create backend
# 这样我们就创建了backend子网,docker-compose就可以直接使用这个network

docker network create backend --subnet 172.24.24.0/24
#配置子网

docker network ls
#查看docker网卡

这里可以看到有backend

2.删除Docker网卡

1.删除全部桥接网卡
1
docker network rm $(docker network ls)
2.删除单一网卡
1
docker network rm 网卡名
3.brctl命令安装
1
apt-get  install -y bridge-utils
4.查看网桥状态
1
2
3
4
brctl show

[root@i ~]# brctl delif <网桥名> <端口名>
#卸载网桥上的端口
5.卸载网桥上的端口
1
brctl delif <网桥名> <端口名>
6.删除网桥
1
2
3
4
5
6
ifconfig
查看网桥网卡名
ifconfig <网桥名> down
#关闭此网卡
brctl delbr <网桥名>
删除网桥

3.解决Docker网桥与局域网冲突

1.问题描述

​ 在使用 docker-compose 部署应用时,docker 默认的网络模式是 bridge,默认网段是 172.17.0.1/16。十分不巧的是我们自己物理机的局域网也使用的是 172.18.0.1/16 的网段。在执行 docker-compose -f docker-compose.yml up -d 部署服务后,自动生成的网桥会依次使用 172.18.x.x,然而悲催的事情发生了。docker 生成的网桥与局域网冲突了。

2.解决方案
1.停止创建的容器
2.操作Docker容器
1
2
3
4
5
6
7
8
# 停止 Docker 容器
sudo systemctl stop docker
# 停止 docker0 网桥
sudo ip link set dev docker0 down
# 删除 docker0 网桥
sudo brctl delbr docker0
# 重置 iptables
sudo iptables -t nat -F POSTROUTING
3.编辑 daemn.json 文件
1
vi /etc/docker/daemon.json
4.设置容器的 IP 网段
1
2
3
4
5
6
"default-address-pools" : [
{
"base" : "192.168.0.0/16",
"size" : 24
}
]

注意:如果 daemon.json 中包含了其它的内容,请切记语法格式的正确性,比如用逗号隔开。

5.重启Docker容器
1
2
systemctl daemon-reload
systemctl start docker

Docker虚拟网卡
https://kuan.pages.dev/article/3f443da1.html
作者
IKun
发布于
2023年1月25日
许可协议