gpt4 book ai didi

docker-compose创建网桥,添加子网,删除网卡的实现

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章docker-compose创建网桥,添加子网,删除网卡的实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1.创建docker网卡 。

?
1
2
3
4
5
6
7
8
9
[root@i ~] # brctl addbr docker0
[root@i ~] # ip addr add 192.168.42.1/24 dev docker0 
# 这里的ip是给docker内部用的, 随意配置一个即可
[root@i ~] # ip link set dev docker0 up
[root@i ~] # ip addr show docker0
# 查看docker
[root@i ~] # systemctl restart docker
[root@i ~] # systemctl restart docker
# 启动docker服务

2.添加子网 。

?
1
2
3
4
5
6
7
8
9
10
11
12
[root@i ~] # docker network create backend
# 这样我们就创建了backend子网,docker-compose就可以直接使用这个network
# 如果无法常见子网,则使用下面的命令,跳过安全问题
 
[root@i ~] # docker network create backend --subnet 172.24.24.0/24
 
[root@i ~] # docker network ls
NETWORK ID     NAME        DRIVER       SCOPE
6afff4d90f05    backend       bridge       local
57de7f32064e    bridge       bridge       local
4b44a5340d6e    host        host        local
ac8e8ffe243f    none        null        local

这里可以看到有backend 。

3.删除网卡 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@i ~] # brctl show
#查看网桥状态
bridge name   bridge id        STP enabled   interfaces
br-5db3fa0c465f     8000.02424cfb3937    no       veth038d483
                             veth2950f5c
                             veth669dc5e
                             veth715203f
                             veth9f31643
                             vethd0f5330
docker0     8000.3a4803cd6298    no       veth9d3badb
                             vethd7530fd
[root@i ~] # brctl delif <网桥名> <端口名>
#卸载网桥上的端口
[root@i ~] # ifconfig
#查看是否有网桥网卡名
[root@i ~] # ifconfig <网桥名> down
#关闭此网卡
[root@i ~] # brctl delbr <网桥名>
#删除网桥

补充:Docker-Compose 自动创建的网桥与局域网冲突的终极解决方案 。

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 生成的网桥与局域网冲突了.

于是乎,面向百度编程的漫漫长路开始了… …,但是,通过一次次的百度和谷歌,找到好多好多复制来复制去的博客,最终一遍一遍的试错,最终也没有解决我的问题,于是乎,这篇含金量达到 99.9999999999999999999999999% 的文章出炉了.

docker-compose创建网桥,添加子网,删除网卡的实现

本次实验环节的 Docker 版本 。

?
1
2
[root@node100 docker-compose] # docker info | grep 'Server Version'
  Server Version: 19.03.12

2、解决方案 。

停止 docker-compose 创建的容器 。

?
1
docker-compose -f docker-compose.yml down

操作 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

P.S 。

?
1
2
# linux brctl command not found,安装 brctl
yum install bridge-utils -y

修改 daemon.json 。

?
1
2
# 编辑 daemon.json 文件
vim /etc/docker/daemon .json
?
1
2
3
4
5
6
7
# 添加如下内容,包含设置 Docker 容器的 IP 网段
"default-address-pools" : [
   {
    "base" : "192.168.0.0/16" ,
    "size" : 24
   }
]

P.S 。

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

重启 Docker 容器 。

?
1
2
sudo systemctl daemon-reload
sudo systemctl start docker

重新安装和启动 docker-compose 的命令 。

?
1
docker-compose -f docker-compose.yml up -d

3、拓展方案 。

点击此处获取 ISSUES 大佬们给出的一些解决方案 。

方案一 。

docker-compose创建网桥,添加子网,删除网卡的实现

方案二 。

docker-compose创建网桥,添加子网,删除网卡的实现

方案三 。

docker-compose创建网桥,添加子网,删除网卡的实现

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.

原文链接:https://blog.csdn.net/xzpdxz/article/details/88554832 。

最后此篇关于docker-compose创建网桥,添加子网,删除网卡的实现的文章就讲到这里了,如果你想了解更多关于docker-compose创建网桥,添加子网,删除网卡的实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com