文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

docker-compose如何创建网桥、添加子网、删除网卡

2023-06-14 07:52

关注

小编给大家分享一下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

这里可以看到有backend

3.删除网卡

[root@i ~]# brctl show#查看网桥状态bridge name   bridge id        STP enabled   interfacesbr-5db3fa0c465f     8000.02424cfb3937    no       veth038d483                            veth3950f5c                            veth769dc5e                            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-compose如何创建网桥、添加子网、删除网卡

本次实验环节的 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如何创建网桥、添加子网、删除网卡

方案二

docker-compose如何创建网桥、添加子网、删除网卡

方案三

docker-compose如何创建网桥、添加子网、删除网卡

以上是“docker-compose如何创建网桥、添加子网、删除网卡”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯