centos7 docker宿主机配置桥接物理网络终极实战

1、停止docker daemon,并删除docker0

systemctl stop docker.service

ip link set dev docker0 down
brctl delbr docker0

2、创建桥接物理网络:

2.1、思路整理

(1)新建br0桥接网络,brctl show可以查看(需安装bridge-utils)

(2)将宿主机物理网卡IP、掩码、网关、dns(或者dhcp)配置到br0上

(3)删除宿主机物理网卡IP、掩码、网关、dns(或者dhcp)配置

(4)将宿主机物理网卡加入到br0

2.2、配置实战

思路可以有一个,但是方案必须要有多种,此处列举两个方案

2.2.1、更改网卡配置文件实现(推荐)

此方案见本人另外一篇博客:

http://zhaoyfcomeon.blog.51cto.com/8429349/1968869

2.2.2、bctrl and ip命令实现

brctl addbr br0
ip link set dev br0 up
ip addr add 192.168.184.100/24 dev br0 #为br0分配物理网络中的ip地址
ip addr del 192.168.184.99/24 dev ens0 #将宿主机网卡的IP清空
brctl addif br0 ens0 #将宿主机网卡挂到br0上
ip route del default #删除原路由
ip route add default via 192.168.184.2 dev br0 #为br0设置路由

3、设置docker服务启动参数

这里要注意的是,不同的linux操作系统docker的配置文件所在不同
centos 在/etc/sysconfig/docker
其他操作系统请前往下面的网址

https://docs.docker.com/installation/#installation
vim /etc/sysconfig/docker 
在OPTIONS=‘--selinux-enabled‘这行中修改为
OPTIONS=‘--selinux-enabled -b=br0‘
即让docker服务启动时使用br0网卡进行桥接

4、启动docker服务

systemctl start docker
systemctl status docker

5、安装pipework

git clone https://github.com/jpetazzo/pipework
cp ~/pipework/pipework /usr/local/bin/

6、启动一个none网络驱动的容器

这里最好不要让docker自动获取ip,下次启动会有变化而且自动获取的ip可能会和物理网段中的ip冲突

docker run -itd --net=none --name=test centos /bin/bash

7、为test容器设置一个与桥接物理网络同地址段的[email protected]网关

pipework br0 test 192.168.184.11/[email protected]

重点:pepework操作内容:

  • 查看主机中是否存在br0网桥、不存在就创建;
  • 向test中加入一块名为eth1的网卡,并配置IP地址为192.168.184.11/24
  • 若test中已经有默认路由,则删掉,把192.168.184.2设为默认路由的网关;
  • 将test容器连接到之前创建的br0上。

8、进入容器查看ip

docker exec -it test /bin/bash
时间: 2024-11-07 11:45:42

centos7 docker宿主机配置桥接物理网络终极实战的相关文章

Linux:宿主机通过桥接方式连接的VMware内部Linux14.04虚拟机(静态IP)实现上网方案

首先,我们要弄清楚三种常见的连接方式中的桥接方式的网络结构: .bridged(桥接模式) 在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器.在桥接模式下,你需要手工为虚拟系统配置IP地址.子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信.同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网. 使用桥接模式的虚拟系统和宿主机器的关

VirtualBox实现宿主机和虚拟机之间网络的通讯

摘要:实现宿主机和虚拟机之间网络的通讯 环境: 宿主机操作系统            WindowsXP 虚拟机软件                    VirtualBox 虚拟机操作系统             Linux 原理: host-only(主机模式) 在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开.这时你就可採用host-only模式. 在host-only模式中.全部的虚拟系统是能够相互通信的,但虚拟系统和真实的网络是被隔离开的. 提示:在host-only模式下

仅主机模式下vmware虚拟机中win7如何使宿主机与寄生机网络互联互通

实验环境:仅主机模式下vmware虚拟机中win7如何使宿主机与寄生机网络互联互通. 需求:VMware Workstation12 Pro或以上版本,并已安装一个win7系统. ----------------下为连接宿主机与寄生机网络的步骤------------- 1主机中打开控制面板-网络和INTERNET-网络和共享中心,并点击更改适配器设置. 2在网络连接里双击VMware Network Adapter VMnet1. 3在VMware Network Adapter VMnet1

CentOS7.5模板机配置

CentOS7.5模板机配置 标签(空格分隔): linux学习知识整理 Mr.Wei's notes! 人一定要有梦想,没有梦想那根咸鱼有什么区别: 即便自己成为了一条咸鱼,也要成为咸鱼里最咸的那一条. --Mr.Wei 关闭selinux [[email protected] ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config [[email protected] ~]# sed -i 's/vmli

docker技术剖析--docker网络(二)docker宿主机之间容器互通

http://hongge.blog.51cto.com/ 多台物理主机之间的容器互联(暴露容器到真实网络中) docker 默认的桥接网卡是 docker0 .它只会在本机桥接所有的容器网卡,举例来说容器的虚拟网卡在主机上看一般叫做 vethxxx,而 docker 只是把所有这些网卡桥接在一起,如下: 这样就可以把这个网络看成是一个私有的网络,通过 nat 连接外网,如果要让外网连接到容器中,就需要做端口映射,即 -p 参数. 如果在企业内部应用,或则做多个物理主机的集群,可能需要将多个物理

Docker 容器与宿主机网段冲突导致网络无法 ping 通的解决方案

docker 容器网络默认使用 bridge 桥接模式,正常情况下,容器会使用 daemon.json 中定义的虚拟网桥来与宿主机进行通讯. 最近更新 Docker for mac 之后,发现以前容器中可以访问的局域网内服务(使用宿主机所在的局域网 IP 访问),变得不可访问了.一开始以为是新版本改了默认网络配置,查了半天 release log 并没有找到相关条目. 后来在同事的帮助下发现问题所在: 由于换了新的工位,宿主机的局域网 IP 网段由 172.16.*.* 切换到了 172.17.

VMware宿主机和虚拟机的网络连接问题

今天在win8上装了个vmware虚拟机,却发现一个vmware workstation宿主机ping不通centos虚拟机,宿主机和centos虚拟机都可以正常上网. 问题描述:今天在vmware workstation9.0中新安装了CentOS6.3系统用于实验测试,安装完成后配置好IP地址.网关.DNS后测试虚拟机已经可以正常上网了,虚拟机和宿主机之间采用的是桥接方式上网,但是当我打算本地通过SecureCRT工具连接这台刚安装好的CentOS 6.3虚拟机时发现连接不上,就在宿主机上测

CentOS 7.0 配置KVM虚拟机桥接物理网络

拓扑图如下: 1.新建网桥bridge 2.设置kvm虚拟机网卡桥接到bridge

Docker宿主机管理

不需要每次输入sudo 在当前用户的用户目录.bashrc中增加以下内容,此后使用docker命令时不需要每次都增加sudo. echo 'sudo usermod -aG docker $USER' >> ~/.bashrc ; source ~/.bashrc Docker目录 Docker相关的镜像.容器.配置等均存放于Docker Engine主机的下述目录: /var/lib/docker 原文地址:https://www.cnblogs.com/zyon/p/11256440.ht