目录
1. 查看当前网络信息
2. 创建自定义网络桥
3. 创建双网卡模式
4. 删除默认网卡
已经创建好了的 Docker 容器,要修改它的IP比较麻烦,网上找了几种不同的方法,经过试验都没有成功,下面通过配置双网上来解决 IP 的问题。双网卡配置好后,也可以删除默认网卡,只保留自己新建的网卡,这样就达到了修改 IP 的目的,具体操作如下:
1. 进入容器查看当前网络信息
如下图所示,容器在创建时、默认绑定了 docker0 这张虚拟网卡
docker 内修改 IP 地址,提示无权限,网上找了很多方法,没能解决。
2. 创建自定义网络桥
# 1. 创建虚拟网络桥命令:
docker network create -d bridge \--subnet 192.168.123.0/24 \--gateway 192.168.123.1 unitree# 2. 查看主机网络信息:
docker network ls# @. 删除虚拟网络桥命令:
# docker network rm unitree
3. 建立双网卡模式
# 1. 容器在创建的时候已经连接到了 docker0
# 2. 将容器连接到网络:# 网卡名称: unitree , 容器ID: 29812a95bcb2docker network connect unitree --ip 192.168.123.121 29812a95bcb2# @. 从容器中移除网络
# docker network disconnect unitree 29812a95bcb2
如下图所示,多出了一个网卡 eth1,它连接到 unitree 上与宿主通讯
至此,容器的双网卡配置完毕 !
4. 从双网卡中删除默认网卡
# 1. 查看虚拟网卡docker network ls----------------------------------------NETWORK ID NAME DRIVER SCOPEc03bbbab3167 unitree bridge local3d2320f1b5d9 bridge bridge local2d97eaff3f12 host host local6cf7015fa97c none null local# 2. 下面将从容器的双网卡中,删除默认的桥接网络docker network disconnect bridge 29812a95bcb2
删除 默认 网卡 如下图所示,eth0 已经没有了。
重启 docker 后刚才的 eth1 就变成 eth0 了,是默认网卡了。
# 1. 停止容器docker stop 29812a95bcb2# 2. 启动容器docker start 29812a95bcb2# 3. 进入容器docker attach 29812a95bcb2# 4. 查看网络ifconfig -a
再查看网络,默认的网卡已经是 unitree 了,连接虚拟网卡的 docker0 已经被删除了。