• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 ls
    NETWORK ID     NAME        DRIVER       SCOPE
    6afff4d90f05    backend       bridge       local
    57de7f32064e    bridge       bridge       local
    4b44a5340d6e    host        host        local
    ac8e8ffe243f    none        null        local

    这里可以看到有backend

    3.删除网卡

    [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 自动创建的网桥与局域网冲突的终极解决方案

    一、问题描述

    在使用 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
    # 重置 iptables
    sudo 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-reload
    sudo systemctl start docker
    

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

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

    三、拓展方案

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

    方案一

    方案二

    方案三

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

    上一篇:docker添加网桥并设置ip地址范围操作
    下一篇:Navicat 连接服务器端中的docker数据库的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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