docker配置网卡使宿主机和容器ip处于同一网段
docker配置网卡使宿主机和容器ip处于同一网段_51CTO博客_docker容器和主机同网段
docker配置网卡使宿主机和容器ip处于同一网段
原创
宏睿时空
2021-06-25 17:29:03©著作权
文章标签
网络模式
文章分类
代码人生
阅读数
8845
首先讲一下 docker的网络模式:
我们使用docker run创建容器时,可以使用--net选项指定容器的网络模式,docker一共有4中网络模式:
1:bridge模式,--net=bridge(默认)。
这是dokcer网络的默认设置。安装完docker,系统会自动添加一个供docker使用的网桥docker0,我们创建一个新的容器时,容器通过DHCP获取一个与docker0同网段的IP地址。并默认连接到docker0网桥,以此实现容器与宿主机的网络互通。如下:
2:host模式,--net=host。
这个模式下创建出来的容器,将不拥有自己独立的Network Namespace,即没有独立的网络环境。它使用宿主机的ip和端口。
3:container模式,--net=container:NAME_or_ID。
这个模式就是指定一个已有的容器,共享该容器的IP和端口。除了网络方面两个容器共享,其他的如文件系统,进程等还是隔离开的。
4:none模式,--net=none。
这个模式下,dokcer不为容器进行任何网络配置。需要我们自己为容器添加网卡,配置IP。
因此,若想使用pipework配置docker容器的ip地址,必须要在none模式下才可以
以下是几种分配IP的方式:
一. maclvan
1、创建自定义网络
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 mynet
- 1.
2、创建固定IP容器
docker run -itd --name test --net mynet --ip 192.168.1.101 centos /bin/bash
- 1.
3、macvlan 是 Linux kernel 支持的新特性,支持的版本有 v3.9-3.19 和 4.0+,比较稳定的版本推荐 4.0+。它一般是以内核模块的形式存在,我们可以通过以下方法判断当前系统是否支持:
modprobe macvlan
lsmod | grep macvlan
二、pipework
本文讲的是Docker使用自定义网桥docker,并且自定义容器的ip地址。 Docker 服务默认会创建一个 docker0 网桥,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。 用户也可以指定网桥来连接各个容器。
这种方法docker官网是不推荐的,记录一下这个方法。但是这个方法可以使宿主机和容器在同一个网段通信。
1.Linux桥接设置
设置桥接的思路:
1. 先建立一个br0的虚拟交换机
2. 把物理端口加入到br0设备中
3. 修改br0 和 物理接口的配置文件--保证持久化
一.准备工作
1.下载brctl git [root@tiger ~]# yum install -y bridge-utils git. 2.下载pipework [root@tiger ~]# git clone
https://
github.com/jpetazzo/pip
ework
3.拷贝命令到bin下 [root@tiger ~]# cp ~/pipework/pipework /usr/local/bin/
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
二. 建立虚拟交换机,并把物理接口加入
1.创建网桥 [root@tiger ~]# brctl addbr br0 2.把ens33加入到br0这个网卡中 [root@tiger ~]# brctl addif br0 ens33 3.有关stp协议的 [root@tiger ~]# brctl stp br0 on
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
三. 修改物理网卡和br0的网卡保证持久化
[root@tiger network-scripts]# pwd /etc/sysconfig/network-scripts [root@tiger network-scripts]# cp ifcfg-ens33 ifcfg-br0 TYPE=Bridge BOOTPROTO=no NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.3.3 PREFIX=24 GATEWAY=192.168.3.1 DNS1=223.5.5.5 DNS2=8.8.8.8 ens33的网卡 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=no DEFROUTE=yes IPV4_FAILURE_FATAL=no NAME=em1 UUID=06c95b32-c733-2611-a7aa-4d0ec8bd07f6 DEVICE=em1 ONBOOT=yes #IPADDR=192.168.3.3 #PREFIX=24 #GATEWAY=192.168.3.1 #DNS1=223.5.5.5 #DNS2=8.8.8.8 BRIDGE=br0 重启下网卡 [root@tiger network-scripts]# systemctl restart network
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
四.为容器配置ip
1.开启一个新容器 [root@tiger ~]# docker run -d --privileged --net none --name tiger 5182e46232bf /sbin/init 2.pipework配置网络 [root@tiger ~]# pipework br0 -i ens33 15b022498573 192.168.3.11/24@192.168.3.1 3.进入容器使用,安装ssh便可以本地使用xshell连接容器 [root@tiger ~]# docker exec -it tiger bash
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 打赏
- 赞
- 收藏
- 评论
- 分享
- 举报
上一篇:
ERROR in AppModule is not an NgModule No NgModule metadata found for 'AppModule'.
下一篇:
详解第一范式、第二范式、第三范式、BCNF范式文章目录
提问和评论都可以,用心的回复会被更多人看到
评论
相关文章
-
VMware与宿主机同一网段
将VMware做为一个物理的虚拟机,设置网段与宿主机在同一子网。 子网其他 -
SpringCloud之Gateway统一网关
Gateway网关可以帮助处理一些校验的问题。并不是所有的在多个实例,这里会进行负载均衡。我们请求到对应的微服务实例后就可以访问或者说请求到数据。... spring cloudgatewayjavaspring微服务 -
docker0 flannel.1不在同一网段
现象: docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 flannel.1: flags=4163<UP ... dockerJAVA -
LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现
LVS-DR 模型(VIP与RIP,DIP不在同一网络中)的实现 网络拓扑: 准备工作:1、如上图所示本实例当中使用Vmware创建了5台虚拟机(其中2台做为Real Server,1台做为Director 1台充当路由器,1台充当客户机);OS分别为CentOS 6.4 32bI LVSLinuxVIPDIP -
docker容器设置静态IP与宿主机同一网段通信
很早以前弄过docker容器设置静态ip地址以及容器与容器之间通信,用的不多所以没有记录下来。今天在网上看到个文章关于设置静态ip地址的。就自己实战下。对了还有个pipework也可以设置。。操作系统环境root@zxl-node4:~# cat /etc/issueUbuntu 14.04.3 LTS \n \l宿主机(系统采用ubu 容器docker设置静态 -
让docker容器和宿主机使用同一网段
system os: centos 7.2 4.7.0-1.el7.elrepo.x86_64docker version: 1.12.01.创建一个networkdocker network create -d macvlan --subnet=192.168.209.0/24 --gatew 集群docker -
设置Linux虚拟机和主机在同一网段
1:问题描述如果虚拟机设置为NAT模式,虚拟机的IP会被分配为192.168.*. * 网段。例如宿主机IP为:172.20.200.118 虚拟机IP为:192.168.177.128。这样会导致从虚拟机ping局域网段可以,但是局域网ping虚拟机就不通。 桥接模式静态ipip地址 -
同一网络不同的IP子网可以通信!
在windows下两台PC直接相连(交叉线)两台网卡的网关设为自己,就可以相互通信了。不相可以试一下,一定是可以的。可以了吧,想一想是什么原理?相明白了这个事情,你对网络的原理又会加深很多的?相信我!!!! IP网络通信子网休闲 -
关于两台计算机不在同一网络段是怎样传输的
在同一网络段中,计算机和计算机之间的信息传输这是很容易理解的,但是在不同网络段中那计算机是怎么样传输的呢。如图所示: 这是由两台计算机和两台路由器连接起来的小型局域网,现在可以看到它们在正常工作,但是我用第一台计算来PING第二台计算机,可是发现一个问题,那就是PING不通第二台,那是什么原因呢?原因很简单,那是因为当计算机一再 局域网网络计算机网络设备发送信息 -
vsan网络分区不在同一组
问题描述:建设南京机房的时候,为vsan单独配置个vlan信息,然后集群开启vsan后,发现每个主机的网络分区都是独立的,不在同一网络分区中,造成vsan无法正常工作。解决方法:第一种解决方法:把vlan信息删掉,在虚拟交换机中把vlan标签删掉即可。第二种解决方法:把交换机端口开启trunk即可。 网络交换机标签 -
一台3层交换机3台电脑,不在同一VLAN不在同一网段
注意事项:1,网关必须设置2.VLAN 的IP必须设置 拓扑图 Switch(vlan)#vlan 10VLAN 10 added: Name: VLAN0010Switch(vlan)#vlan 20VLAN 20 added: Name: VLAN 职场电脑交换休闲 -
docker配置网卡使宿主机和容器ip处于同一网段
首先讲一下 docker的网络模式:我们使用docker run创建容器时,可以使用--net选项指定容器的网络模式,docker一共有4中网络模式:1:bridge模式,--net=bridge(默认)。这是dokcer网络的默认设置。安装完docker,系统会自动添加一个供docker使用的网桥docker0,我们创建一个新的容器时,容器通过DHCP获取一个与docker0同网段的IP地址。 网络模式 -
配置设备作为DHCP中继(中继与服务器处于同一网络)
作业提要一、拓扑图二、组网需求如上图所示,某企业将DHCP服务器部署在核心层设备上,DHCP服务器与企业内的终端不在同一个网段。企业希望使用该DHCP服务器为终端动态分配IP地址。三、配置思路配置设备作为DHCP中继的配置思路如下:1、在汇聚层设备RouterA(用户网关)上配置DHCP中继,实现设备作为DHCP中继转发终端与DHCP服务器之间的DHCP报文。2、在c备RouterB上,配置基于全 DHCP中继 -
华为设备作为DHCP中继(中继与服务器处于同一网络)
华为设备作为DHCP中继(中继与服务器处于同一网络) 华为DHCP中继 -
华为 eSpace U1980统一网关 销售安装调试
我公司承接综合布线、30b+d业务,以及销售安装集团电话、程控交换机、视频会议、路由器、防火墙、机柜、防盗报警等工程设备,欢迎有意者来电洽谈。企业网址:http://www.xinshangyuan.com企业邮箱:xinshangyuan@163.com咨询电话:010-82888876/82887606手 机:13911688646 (24小时热线)联系人:张经理公司:北京欣尚沅国 程控交换机华为 eSpace U1980eSpace U1980华为 U1980U1980 -
ARP代理技术详解|如何实现同一网段但不在同一广播域的的两台主机通信?
前言上一章介绍了ARP的技术原理,但是ARP报文只能在广播域中传播,如果同一网段的两台主机在不同的广播域是否可以通信呢?答案是可以的,但是需要借助ARP代理。正文我们先来看个例子介绍下ARP代理的工作原理:如图所示:主机A需要与主机B通信时,目的IP地址与本机的IP地址处于同一网段,但是处于不同的广播域,所以主机A将会以广播形式发送ARPRequest报文,请求主机B的MAC地址。但是,广播报文无 Java -
linux下ip与网关不在同一段配置
linux下网关地址与主机不在同一网段时的设置 iplinuxroute -
linux主机复制文件到同一网段其他设备
scp deepstream_build_220222.zip xxxx@192.168.1.137: linux -
怎样在同一网络中运行2个以上的DAppNode
问题: 可以在同一家庭网络上运行多个DappNode而不发生端口冲突吗? 解决方案: 由于端口冲突,两个DAppNode在同一个家庭网络中运行非常困难,而且它们都在争夺对同一UPNP的控制权。 DAppNode