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

1.创建docker网卡[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.添加子网[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 lsNETWORK ID NAME DRIVER SCOPE6afff4d90f05 backend bridge local57de7f32064e bridge bridge local4b44a5340d6e host host localac8e8ffe243f none null local

成都创新互联专注于企业网络营销推广、网站重做改版、弋江网站定制设计、自适应品牌网站建设、H5网站设计商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为弋江等各大城市提供网站开发制作服务。

这里可以看到有backend

3.删除网卡[root@i ~]# brctl show#查看网桥状态bridge name bridge id STP enabled interfacesbr-5db3fa0c465f 8000.02424cfb3937 no veth038d483 veth2950f5c veth669dc5e veth715203f veth9f31643 vethd0f5330docker0 8000.3a4803cd6298 no veth9d3badb vethd7530fd[root@i ~]# brctl delif <网桥名> <端口名>#卸载网桥上的端口[root@i ~]# ifconfig#查看是否有网桥网卡名[root@i ~]# ifconfig <网桥名> down#关闭此网卡[root@i ~]# brctl delbr <网桥名>#删除网桥

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

一、问题描述

在使用 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 版本

[root@node100 docker-compose]# docker info | grep 'Server Version' Server Version: 19.03.12二、解决方案

停止 docker-compose 创建的容器

docker-compose -f docker-compose.yml down

操作 Docker 容器

# 停止 Docker 容器sudo systemctl stop docker# 停止 docker0 网桥sudo ip link set dev docker0 down# 删除 docker0 网桥sudo brctl delbr docker0# 重置 iptablessudo iptables -t nat -F POSTROUTING

P.S

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

修改 daemon.json

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

P.S

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

重启 Docker 容器

sudo systemctl daemon-reloadsudo systemctl start docker

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

docker-compose -f docker-compose.yml up -d三、拓展方案

获取 ISSUES 大佬们给出的一些解决方案

方案一

方案二

方案三

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

文章题目:docker-compose创建网桥,添加子网,删除网卡的实现
当前链接:https://www.cdcxhl.com/article20/dphco.html

成都网站建设公司_创新互联,为您提供品牌网站设计外贸网站建设网站设计公司微信公众号网站收录网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司