精华内容
下载资源
问答
  • DOCKER - 修改DOCKER0网卡

    千次阅读 2020-10-30 10:30:29
    默认情况下启动docker之后会自己创建一个名为 docker0的网桥。但是里面的ip配置可能不是自己期望或是与某些公司内部的网关冲突了,造成不必要的麻烦. 目前本人的公司服务器环境全是内网.IP地址都是172.xx.xx.xx与...

    背景

    默认情况下启动docker之后会自己创建一个名为 docker0的网桥。但是里面的ip配置可能不是自己期望或是与某些公司内部的网关冲突了,造成不必要的麻烦. 目前本人的公司服务器环境全是内网.IP地址都是172.xx.xx.xx与docker0的IP冲突会导致一些同事无法正常访问网络

    如何解决?

    修改默认的配置文件 /etc/docker/daemon.json对docker进行配置。

    如果没有docker目录与daemon.json文件则手动创建

    daemon.json

    {
      "bip": "192.198.0.1/38",
      "registry-mirrors": [
        "https://registry.aliyuncs.com"
      ]
    }
    

    修改并保存后重启docker服务

    systemctl restart docker

    执行ifconfig查看docker0网卡已经修改成功!

    展开全文
  • docker的网络和volume一样,也是比较重要的内容docker的network模块是可插拔的,有五种driver可供选择。bridge、host、overlay、macvlan、nonebridge:这是容器默认的网络驱动,如果你创建容器时没有指定驱动,用的...

    docker的网络和volume一样,也是比较重要的内容

    5fa93133339cc5da19db2745ea792b78.png

    docker的network模块是可插拔的,有五种driver可供选择。

    bridge、host、overlay、macvlan、none

    bridge:这是容器默认的网络驱动,如果你创建容器时没有指定驱动,用的就是这个。

    host:移除容器自己独立的网络配置,直接使用主机的网络配置。众所周知,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID Namespace隔离进程,Mount Namespace隔离文件系统,Network Namespace隔离网络等。一个Network Namespace提供了一份独立的网络环境,包括网卡、路由、Iptable规则等都与其他的Network Namespace隔离。一个Docker容器一般会分配一个独立的Network Namespace。但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。在17.06以上版本的swarm service也可以是使用host网络模式

    overlay:连接多个容器

    macvlan:允许你给docker容器绑定mac地址

    none:关闭该容器的网络,在一些不需要网络的批处理任务时,还是有用的。

    总结:

    一般而言,当你是在一台主机上的多个独立的容器,用bridge模式

    当你需要将容器的网络环境和主机的网络环境绑定时,用host模式

    当你需要多个主机上的多个容器相互通信,用overlay网络

    5fe2af1dd8e6ce8d1acb40a20d71a570.png

    安装docker后,docker会自动安装三个网络

    docker network ls

    NETWORK ID NAME DRIVER SCOPE

    1a492c1b74f8 bridge bridge local

    58c912274975 host host local

    f91a02b5608e none null local

    Docker内置这三个网络,运行容器时,你可以使用该--network标志来指定容器应连接到哪些网络。默认的就是连到这个bridge网络。所以同一台主机上的容器,可以相互通信。但是不同主机上的容器不可以,需要使用overlay网络,或者自己配置路由层。

    容器有自己的内部网络和 ip 地址,使用docker inspec可以详细查看

    展开全文
  • 之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会...

    前言

    之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会消失。

    环境介绍

    服务器IP容器分配网段启动容器的ID
    192.168.1.105172.172.0.0/24172.172.0.10
    192.168.1.106172.172.1.0/24172.172.1.10

    绑定步骤

    先操作192.168.1.105虚拟机

    第一步:创建自定义网络

    docker network create --subnet=172.172.0.0/24 docker-br0

    备注:这里选取了172.172.0.0网段,也可以指定其他任意空闲的网段,docker-br0为自定义网桥的名字,可自己任意取名。
    注意:这里子网掩码要使用255.255.255.0也就是IP后面的那个24,因为后面要使用iptables配置路由表,我之前使用255.255.0.0 无法配置.所以这里配置成24.

    创建网桥之后,使用ifconfig查看 会多出一个网桥,该网桥在docker启动或者重启之后,会自动显示出来。永久的,可以使用docker network rm docker-br0 移除网桥。
    在这里插入图片描述

    第二步:在你自定义的网段选取任意IP地址作为你要启动容器IP

    docker run -i -d --net docker-br0 --ip 172.172.0.10 --name nginx -v /usr/local/software/:/mnt/software/ 3bee3060bfc8 /bin/bash

    备注:创建容器时,在第一步创建的网段中选取了172.172.0.10作为静态IP地址。并且以docker-br0网桥启动. -v是挂载,表示需要将本地哪个目录挂载到容器中。3bee3060bfc8是镜像ID

    使用docker exec -it nginx /bin/bash 进入已启动的容器,使用 yum install net-tools 下载 iptables 然后使用ifconfig查看容器ip
    在这里插入图片描述

    第三步:测试本机和容器是否ping通

    #测试ping 百度
    [root@e98109ef9fd6 /]# ping www.baidu.com
    PING www.a.shifen.com (119.75.213.61) 56(84) bytes of data.
    64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=1 ttl=56 time=10.1 ms
    64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=2 ttl=56 time=8.26 ms
     
    #测试宿主机
    [root@e98109ef9fd6 /]# ping 192.168.1.105
    PING 192.168.1.105 (192.168.1.105) 56(84) bytes of data.
    64 bytes from 192.168.1.105: icmp_seq=1 ttl=64 time=0.099 ms
    64 bytes from 192.168.1.105: icmp_seq=2 ttl=64 time=0.081 ms
     
    #测试ping另一台虚拟机
    [root@e98109ef9fd6 /]# ping 192.168.1.106
    PING 192.168.1.106 (192.168.1.106) 56(84) bytes of data.
    64 bytes from 192.168.1.106: icmp_seq=1 ttl=63 time=1.67 ms
    64 bytes from 192.168.1.106: icmp_seq=2 ttl=63 time=0.587 ms
    

    到此给容器绑定固定ip 已完成,下面是 容器跨主机互相访问。

    跨主机容器互访

    第四步:在192.168.1.106虚拟机上,给容器绑定固定ip, 按照之前 第一步到 第三步.

    第五步:在两个容器中互相访问,发现跨主机容器互访,并不能ping通。

    [root@e98109ef9fd6 /]# ping 172.172.1.10
    PING 172.172.1.10 (172.172.1.10) 56(84) bytes of data.
    From 192.168.1.105 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.105 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.105 icmp_seq=3 Destination Host Unreachable
     
    [root@e98109ef9fd6 /]# ping 172.172.0.10
    PING 172.172.0.10 (172.172.0.10) 56(84) bytes of data.
    From 192.168.1.106 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.106 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.106 icmp_seq=3 Destination Host Unreachable
    

    第六步:配置路由表

    #添加路由规则
    ip route add 对方容器所在的ip网段/子网掩码 via 对方虚拟机ip dev 通过哪个网卡通信
    如: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
    添加完成之后,可以使用 route命令 查看添加之后的规则,也可以使用 ip route del 172.172.1.0/24 移除路由规则

    在192.168.1.105 和 192.168.1.106虚拟机上,分别添加对应的路由规则!
    192.168.1.105: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736
    192.168.1.106: ip route add 172.172.0.0/24 via 192.168.1.105 dev eno16777736

    第七步:在两个容器中互相访问,发现可以实现跨主机容器互相ping通了。

    [root@e98109ef9fd6 /]# ping 172.172.1.10
    PING 172.172.1.10 (172.172.1.10) 56(84) bytes of data.
    64 bytes from 172.172.1.10: icmp_seq=1 ttl=62 time=0.636 ms
    64 bytes from 172.172.1.10: icmp_seq=2 ttl=62 time=0.411 ms
    64 bytes from 172.172.1.10: icmp_seq=3 ttl=62 time=0.472 ms
     
    [root@8343ad7e7f0f /]# ping 172.172.0.10
    PING 172.172.0.10 (172.172.0.10) 56(84) bytes of data.
    64 bytes from 172.172.0.10: icmp_seq=1 ttl=62 time=0.920 ms
    64 bytes from 172.172.0.10: icmp_seq=2 ttl=62 time=0.674 ms
    64 bytes from 172.172.0.10: icmp_seq=3 ttl=62 time=0.657 ms
    
    展开全文
  • 之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会...

    之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会消失。

    环境介绍

     

    服务器IP容器分配网段启动容器的ID
    192.168.1.105172.172.0.0/24172.172.0.10
    192.168.1.106172.172.1.0/24172.172.1.10

    绑定步骤

    先操作192.168.1.105虚拟机

    第一步:创建自定义网络

    docker network create --subnet=172.172.0.0/24 docker-br0

    备注:这里选取了172.172.0.0网段,也可以指定其他任意空闲的网段,docker-br0为自定义网桥的名字,可自己任意取名。
    注意:这里子网掩码要使用255.255.255.0也就是IP后面的那个24,因为后面要使用iptables配置路由表,我之前使用255.255.0.0 无法配置.所以这里配置成24.

    创建网桥之后,使用ifconfig查看 会多出一个网桥,该网桥在docker启动或者重启之后,会自动显示出来。永久的,可以使用docker network rm docker-br0 移除网桥。

    第二步:在你自定义的网段选取任意IP地址作为你要启动容器IP

    docker run -i -d --net docker-br0 --ip 172.172.0.10 --name nginx -v /usr/local/software/:/mnt/software/ 3bee3060bfc8 /bin/bash

    备注:创建容器时,在第一步创建的网段中选取了172.172.0.10作为静态IP地址。并且以docker-br0网桥启动. -v是挂载,表示需要将本地哪个目录挂载到容器中。3bee3060bfc8是镜像ID

    使用docker exec -it nginx /bin/bash 进入已启动的容器,使用 yum install net-tools 下载 iptables 然后使用ifconfig查看容器ip

    第三步:测试本机和容器是否ping通

    #测试ping 百度
    [root@e98109ef9fd6 /]# ping www.baidu.com
    PING www.a.shifen.com (119.75.213.61) 56(84) bytes of data.
    64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=1 ttl=56 time=10.1 ms
    64 bytes from 119.75.213.61 (119.75.213.61): icmp_seq=2 ttl=56 time=8.26 ms
     
    #测试宿主机
    [root@e98109ef9fd6 /]# ping 192.168.1.105
    PING 192.168.1.105 (192.168.1.105) 56(84) bytes of data.
    64 bytes from 192.168.1.105: icmp_seq=1 ttl=64 time=0.099 ms
    64 bytes from 192.168.1.105: icmp_seq=2 ttl=64 time=0.081 ms
     
    #测试ping另一台虚拟机
    [root@e98109ef9fd6 /]# ping 192.168.1.106
    PING 192.168.1.106 (192.168.1.106) 56(84) bytes of data.
    64 bytes from 192.168.1.106: icmp_seq=1 ttl=63 time=1.67 ms
    64 bytes from 192.168.1.106: icmp_seq=2 ttl=63 time=0.587 ms

    到此给容器绑定固定ip 已完成,下面是 容器跨主机互相访问。

    跨主机容器互访

    第四步:在192.168.1.106虚拟机上,给容器绑定固定ip, 按照之前 第一步到 第三步.

    第五步:在两个容器中互相访问,发现跨主机容器互访,并不能ping通。

    [root@e98109ef9fd6 /]# ping 172.172.1.10
    PING 172.172.1.10 (172.172.1.10) 56(84) bytes of data.
    From 192.168.1.105 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.105 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.105 icmp_seq=3 Destination Host Unreachable
     
    [root@e98109ef9fd6 /]# ping 172.172.0.10
    PING 172.172.0.10 (172.172.0.10) 56(84) bytes of data.
    From 192.168.1.106 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.106 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.106 icmp_seq=3 Destination Host Unreachable

    第六步:配置路由表

    #添加路由规则
    ip route add 对方容器所在的ip网段/子网掩码 via 对方虚拟机ip dev 通过哪个网卡通信
    如: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736    
    添加完成之后,可以使用 route命令 查看添加之后的规则,也可以使用 ip route del 172.172.1.0/24  移除路由规则

    在192.168.1.105 和 192.168.1.106虚拟机上,分别添加对应的路由规则!
    192.168.1.105: ip route add 172.172.1.0/24 via 192.168.1.106 dev eno16777736 
    192.168.1.106: ip route add 172.172.0.0/24 via 192.168.1.105 dev eno16777736 

    第七步:在两个容器中互相访问,发现可以实现跨主机容器互相ping通了。

    [root@e98109ef9fd6 /]# ping 172.172.1.10
    PING 172.172.1.10 (172.172.1.10) 56(84) bytes of data.
    64 bytes from 172.172.1.10: icmp_seq=1 ttl=62 time=0.636 ms
    64 bytes from 172.172.1.10: icmp_seq=2 ttl=62 time=0.411 ms
    64 bytes from 172.172.1.10: icmp_seq=3 ttl=62 time=0.472 ms
     
    [root@8343ad7e7f0f /]# ping 172.172.0.10
    PING 172.172.0.10 (172.172.0.10) 56(84) bytes of data.
    64 bytes from 172.172.0.10: icmp_seq=1 ttl=62 time=0.920 ms
    64 bytes from 172.172.0.10: icmp_seq=2 ttl=62 time=0.674 ms
    64 bytes from 172.172.0.10: icmp_seq=3 ttl=62 time=0.657 ms
     

     

    展开全文
  • Docker容器使用静态独立的外部IP(便于集群组建) 收藏 孤岛旭日 发表于1年前 阅读1404 收藏12 点赞0 评论1 OSC福州源创会,报名开始啦!>>> 摘要: 在VM...
  • 利用iptables给Docker绑定一个外网IP

    千次阅读 2015-07-27 18:46:55
    但是有时候在有其他需求时并不太方便,特别是在进行一些docker打包之前的内部开发时,希望其能够像虚机一样能够与外部有很好的通信,便希望其能够绑定外部的IP地址。 docker默认的网络是桥接在创建好后的网桥docker...
  • 本篇文章主要介绍了docker添加多网卡的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 文章参考自 https://www.fmqcloud.com/archives/pipework.html【使用pipework工具给...【网卡名分别为eth0 ,eth1】,eth0为宿主机专用,eth1虽然也是宿主机网卡,但是不想让宿主机绑定任何端口在上面。eth1给docker
  • 我是用f-stack中的dpdk工具进行网卡绑定和解绑的。 1.网卡绑定 ...绑定网卡到dpdk驱动上 ./dpdk-devbind.py --bind=igb_uio ens33 查看网卡状态 2.网卡解绑 sudo python dpdk-devbind.py -u 0000:.
  • 在linux上创建桥接网卡,与真实的物理网卡进行绑定,相当于在linux中创建了一个虚拟的交换机,以linux网卡地址为源地址的数据,从桥接网卡br0进入,从实际的物理网卡eth0发出; 创建桥接网卡br0,需要在网卡的...
  • docker添加多网卡

    万次阅读 2015-06-01 19:33:26
    1. 创建网桥br0 ...2. 添加网卡eth0至网桥br0(需要清除eth0原有ip地址),亦可不添加物理网口,根据自己需要 ip link set eth0 master br0 #对应的删除命令ip link set eth0 nomaster 3. 启动容器 do
  • Docker自定义bridge网卡的使用

    千次阅读 2018-06-07 15:35:02
    1.创建bridge网卡 docker network create -d bridge my-bridge docker network ls 查看网卡 NETWORK ID NAME DRIVER SCOPE 05feb2c84b41 bridge bridge ...
  • linux子接口以及绑定网卡使用

    千次阅读 2015-12-04 15:03:06
    日常linux我们经常用到网卡绑定以及子接口使用,记录一下相关操作 子接口使用:就是一块网卡绑定了多个ip地址,相对网卡绑定配置比较简单 1.临时配置,重启后失效 #ip addr add 192.168.101....
  • 比如docker或者kubernetes的calico网络插件,其实都使用到了veth pair设备,即容器里面的网卡是veth pair的一端,宿主机上的某张网卡是veth pair的另一端,那么假如我想知道到底对应的是宿主机上的哪张网卡有什么...
  • docker-compose创建网卡secsys_network的网段为172.18.0.0/16,网关为172.18.0.1,而主机修改网卡的网关也是 172.18.0.1,导致secweb容器访问mysql容器失败 解决【修改secsys_network的网络为别的网段即可,我这是...
  • Docker优势说明更快的交付和部署使用docker 开发人员可以使用镜像来快速构建一套标准的开发环境;开发完成之后,测试和运维人员可以直接使用完全相同的环境来部署代码,只要开发测试过的代码,就可以确保在生产环境...
  • Docker

    万次阅读 多人点赞 2019-10-29 23:15:26
    文章目录@[toc]dockerdocker 手册centos7 联网安装docker官方安装手册镜像加速基本概念镜像容器docker 镜像操作下载 CentOS 镜像查看centos7镜运行 centos7删除镜像镜像导出镜像导入容器操作启动容器后台运行查看...
  • docker网络基础一.1. 默认情况下容器可以建立到外网网络的链接但是外网网络无法连接到容器docker允许通过外部访问容器或容器互联的方式来提供网络服务外部访问容器可以在容器中运行网络应用可以通过-p 或 -P参数来...
  • docker

    2020-11-21 14:33:52
    笔记来自狂神docker教学视频 1 安装 安装docker 1.# 卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,018
精华内容 2,007
关键字:

docker绑定网卡