虚拟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. LibraryBuilder——从元器件datasheet到Library

    LibraryBuilder是Cadence推出的元件库管理工具,可以从PDF自动创建器件的原理图符号及PCB封装. 软件可以从“吴川斌的博客”下载到. 这里大致记录一下创建元件库的过程,以Beagl ...

  2. Oracle数据库添加删除主外键

    (一)添加主键 1.表创建的同时,添加主键约束 语法: create table "表名" ( "列名1" 数据类型及长度 constraint "主 ...

  3. UI自动化(selenium+python)之浏览器驱动chromedriver安装和配置

    一.安装selenium 前提是已安装Python,python安装 自行百度,这里不概述 安装好python后,cmd打开终端窗口-->pip命令安装 :pip install seleniu ...

  4. 三十七、www服务nginx进阶

    六.查看nginx默认首页和目录:如下,可以看到,默认的目录是html,首页是index.html [root@djw1 conf]# grep html nginx.conf            ...

  5. cmd释放重新获取IP

    1.打开电脑的命令提示符运行设置窗口之后,我们收入  ipconfig/release  ,然后点击回车键  ,释放之前获取的IP地址 2.释放之前的IP地址之后,我们在输入  ipconfig/re ...

  6. 牛客-Forsaken的数列(Treap)

    题目传送门 sol:第一次看题还真信了是用线段树来做,但是没什么想法,看了题解发现是我不会的Treap,然后花了几天时间学习了一下并补掉题目 无旋Treap #include <bits/std ...

  7. LG_2967_[USACO09DEC]视频游戏的麻烦Video Game Troubles

    题目描述 Farmer John's cows love their video games! FJ noticed that after playing these games that his c ...

  8. [LC] 121. Best Time to Buy and Sell Stock

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  9. Qt Sleep、QCoreApplication::processEvents()(最佳的平衡:一边发送消息,一边睡眠)

    sleep()//秒 msleep()//毫秒 usleep()//微秒 以前为了模拟鼠标点击用过这些函数,可以让进程中断,今天发现我原来的做法其实不对.这组函数会将你当前的线程/进程变为“睡眠”状态 ...

  10. icloud/onenote/onedrive/microoutlook/百度云账号都是怎么回事(未完成)

    在用一些跨机器跨平台软件的时候,一旦换了电脑或者手机,我经常出现蒙的状态,不知道怎么同步或者使用了,在这里总结一下. 一.icloud账号 当我们买iphone或者macbook的时候,一开机它会让你 ...