虚拟IP。何为虚拟IP,就是一个未分配给真实主机的IP,也就是说对外提供数据库服务器的主机除了有一个真实IP外还有一个虚IP,使用这两个IP中的任意一个都可以连接到这台主机,所有项目中数据库链接一项配置的都是这个虚IP,当服务器发生故障无法对外提供服务时,动态将这个虚IP切换到备用主机。

虚拟IP原理:http://blog.csdn.net/whycold/article/details/11898249
 
 
通过虚拟IP,我们可以虚拟化的增加docker宿主机的对外IP,通过对外不同IP来实现不同的接入服务。让我们看下面的例子:
1,查看当前网卡设备eth0并创建新的网卡设备eht0:1
ech0详细内容:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
内容如下:
DEVICE=eth0 
HWADDR=00:0c:29:ae:d2:2b 
TYPE=Ethernet UUID=d3015c96-42e0-483b-81d5-e4b05a384fbe 
ONBOOT=yes 
NM_CONTROLLED=yes 
BOOTPROTO=static 
IPADDR=192.168.1.10 
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1 
DNS1=192.168.1.1
 
创建虚拟网卡设备eth0:1:
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0:1
修改eth0:1设置IP192.168.1.11:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
内容如下:
DEVICE=eth0:1 
HWADDR=00:0c:29:ae:d2:2b 
TYPE=Ethernet UUID=d3015c96-42e0-483b-81d5-e4b05a384fbe 
ONBOOT=yes 
NM_CONTROLLED=yes 
BOOTPROTO=static 
IPADDR=192.168.1.11
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1 
注意:eth0:1的DEVICE必须为eth0:1 ,表示通过eth0连接.且它们的设备mac需要一致
 
2.启动虚拟IP的网卡设备: 
# ifup eth0:1
此时通过ifconfig可以查看到eth0,eth0:1两个网卡设备,并且IP为 192.168.1.10、192.168.1.11
 
3.运行容器指定映射IP和端口:
查看当前docker 镜像
# docker images
REPOSITORY TAG IMAGE   ID CREATED VIRTUAL SIZE
centos latest 34943839435d 3 weeks ago 224 MB
通过镜像运行容器
# docker run -d -p 192.168.1.11:80:80 centos
此时就可以通过192.168.1.11这个IP的80端口访问容器centos了
#docker ps -a
而192.168.1.10这个IP的80端口是访问不到的这个容器的,这样我们就相当于又可以在192.168.1.10的IP上80端口访问其他新增的容器了
 
 
 
特别注意:
1.使用虚拟IP的话,在任何-p映射中不要使用 -p 0.0.0.0:80:80 或者 -p 80:80,这样会占用有IP的80端口
2.修改虚拟网卡配置时,请先ifdown eht0:x,修改完后ifup eth0:x
3.删除虚拟网卡设备文件请先进行ifdown eth0:X ,再删除eth0:X网卡设备文件,但不建议这么做。最好的方法是不要删除虚拟网卡设备文件,编辑多余不用的网卡设备文件,保留BOOTPROTO,HWADDROOT和ONBOOT这三项其他注释即可。
4.无论删除,或编辑网卡,之后请不要使用service network restart,否者会出现断网,需reboot重启恢复
5.关于容器因虚拟IP操作不当仍不能连网,请停止所有容器,ifdown所有虚拟网卡设备,再ifup,然后启动容器即可恢复。

(为容器分配独立IP方法二)通过虚拟IP实现docker宿主机增加对外IP接口的更多相关文章

  1. Linux namespace技术应用实践--调用宿主机命令(tcpdump/ip/ps/top)检查docker容器网络、进程状态

    背景 最近偶然听了几堂极客时间的云原生免费公开课程,首次接触到了Linux namespace技术,并了解到这正是现在风头正劲的容器技术基石,引起了自己探究一二的兴趣,结合课程+网络搜索+实践操作,也 ...

  2. docker centos7 配置和宿主机同网段IP

    docker centos7 配置和宿主机同网段IP 1.安装brctl 命令 # yum -y install bridge-utils 2.编辑网卡配置文件 # vi ifcfg-eno16777 ...

  3. 【LINUX】——如何配置宿主机和虚拟机IP在同一网段

    宿主机:win7  10.8.2.50 255.255.255.0 虚拟机:redhat 如果使用 NAT 的网络连接方式,虚拟机的 IP 会被分配为 192.168.*.* 网段,从虚拟机 ping ...

  4. docker 宿主机与容器直接文件移动命令

    1.将容器中的文件复制到宿主机 我们把容器中的 nginx 目录整个复制到  宿主机/usr/local/nginx 目录下,使用如下命令: docker cp nginx_test: /etc/ng ...

  5. 为docker容器设置独立ip

    docker 1.12使用新版macvlan设置与宿主机同网段ip ****************************************** 由于开发的一些特殊需求,需要将容器部署在与宿主 ...

  6. 绕过CDN查找网站真实IP方法

    查找网站 源IP方法: 如果遇到需要绕过CDN,查找网站真实IP地址时,可以采用如下方法: 假设主站服务和邮件服务在同一台服务器: 1.在网站用QQ邮箱注册账号: 2.收取注册验证邮件: 3.查看邮件 ...

  7. 【Docker】使用Docker Client和Docker Go SDK为容器分配GPU资源

    目录 背景 使用 Docker Client 调用 GPU 依赖安装 安装 Docker 安装 NVIDIA Container Toolkit¶ --gpus 用法 使用 Docker Go SDK ...

  8. Docker容器内部端口映射到外部宿主机端口

    Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务.容器启动之后,容器中可以运行一些网络应用,通过-p或-P参数来指定端口映射. 注意:宿主机的一个端口只能映射到容器内部的某一个端口 ...

  9. 宿主机网络中其它机器与Docker容器网络互通配置

    前言 目前项目采用微服务架构进行开发,Nacos和其它服务部署到Docker中,Docker中容器采用的网络默认是桥接模式(Bridge),默认的子网码是172.17.0.1/16:宿主机是192.1 ...

随机推荐

  1. 常用STL的常见用法

    //#pragma comment(linker, "/STACK:1024000000,1024000000") //#pragma GCC optimize(2) //#inc ...

  2. 2017年3月16工作日志【mysql更改字段参数、java8 map()调用方法示例】

    修改某个表的字段类型及指定为空或非空 >alter table 表名称 change 字段名称 字段名称 字段类型 [是否允许非空],变更字段名称及属性 >alter table 表名称 ...

  3. kaggle——分销商产品未来销售情况预测

    分销商产品未来销售情况预测 介绍 前面的几个实验中,都是根据提供的数据特征来构建模型,也就是说,数据集中会含有许多的特征列.本次将会介绍如何去处理另一种常见的数据,即时间序列数据.具体来说就是如何根据 ...

  4. 安装R的h5包

    系统 redhat7 安装H5的包, 依赖系统hdf5包,如下安装完, 发现版本不一致, sudo yum install hdf5-devel 解决办法: 移花接木 sudo ln -s /opt/ ...

  5. debian8.8更新源

    ##163源 deb http://mirrors.163.com/debian/ jessie main non-free contribdeb http://mirrors.163.com/deb ...

  6. $.post系统登录校验

    AJAX方式:$.post系统登录校验 https://blog.csdn.net/woshisangsang/article/details/66560238?utm_source=blogxgwz ...

  7. Pooled genome sequence strategies |representative genome assembly approaches|Domestication|GERP|selective sweep|Hybridization|Introgression|iHS|SNP genotyping arrays|haplotype

    Design based on biology 通过比较基因组学的方法,将脊椎动物基因组的数据,解决生物学各方面问题.新的调控注释(在脊椎动物的进化过程中的出现的)可以丰富物种树(比如不同功能蛋白质进 ...

  8. [SDOI2015]道路修建(线段树)

    题意:给定2行n列的四连通带权网格图,支持修改边权和查询第[l,r]列的最小生成树 题解:这是一道好题,要么SDOI2019中n=2的20pts怎么会“我抄我自己”?(当然NOIP2018“我抄我自己 ...

  9. CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/repodata.json.bz2> Elapsed: -

    将C:\Users\<本机用户名>\.condarc文件修改为 channels: - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/ ...

  10. 线性反馈移位寄存器(LFSR)-非线性反馈移位寄存器的verilog实现(产生伪随机数)

    一.线性反馈移位寄存器(LFSR) 通过对事先选定的种子做运算使得人工生成的伪随机序列的过程,在实际中,随机种子的选择决定了输出的伪随机序列的不同,也就是说随机种子的选择至关重要. 产生伪随机数的方法 ...