如何在docker中搭建lvs_nat环境?

时间:2024-03-27 19:35:36

什么是LVS?

如何在docker中搭建lvs_nat环境?

怎么在docker中构建lvs?需要什么环境?

首先需要一个docker 环境如何在docker中搭建lvs_nat环境?,如何构建docker环境请查阅我的另一篇文章

如何在linux(centos7)虚拟机中搭建Docker?点击打开链接

然后需要一个centos7的基础镜像。

如何在docker中搭建lvs_nat环境?

开始:

第一步:

运行镜像:

命令:docker run --privileged -d -i -t daocloud.io/centos:7 /bin/bash

必须使用 :--privileged参数启动,否则运行ipvsadm命令报错

查看,启动成功的容器

如何在docker中搭建lvs_nat环境?

第二步:进入该容器:docker exec -i -t angry_agnesi /bin/bash

如何在docker中搭建lvs_nat环境?

安装ipvsadm:yum install -y ipvsadm

如何在docker中搭建lvs_nat环境?

安装完毕

如何在docker中搭建lvs_nat环境?

测试是否安装成功?如下则为成功。

如何在docker中搭建lvs_nat环境?

然而有时候会出现这种报错:

如何在docker中搭建lvs_nat环境?

网上说的方式好多都不能解决问题,我最终找到的解决方式是:

1.在启动镜像的时候加上--privileged参数

2.在宿主机上也安装ipvsadm,如果用privileged参数启动镜像中出现上述错误,那么去宿主机中输入ipvsadm命令后没有错误,再进入镜像中就好了。(别问我为什么,我也很绝望如何在docker中搭建lvs_nat环境?

3.配置LVS_NAT

首先我们启动两个应用,并分别暴露8080和8088端口。


如何在docker中搭建lvs_nat环境?

宿主机ip

如何在docker中搭建lvs_nat环境?

如何在docker中搭建lvs_nat环境?

如何在docker中搭建lvs_nat环境?


分别进入到这两个容器中,输入ip addr命令,查看他们的ip地址

如何在docker中搭建lvs_nat环境?

如何在docker中搭建lvs_nat环境?


如何在docker中搭建lvs_nat环境?

至此我们知道了我们的两个RS1=172.17.0.3 RS2=172.17.0.4   VIP=172.17.0.2

由于我们是在docker中建立的,所以我们的RS都可以写成宿主机的ip10.5.50.25    从宿主机的8080和8088端口映射到app1和app2容器中的8080端口, 所以我们的ipvsadm设置如下:

如何在docker中搭建lvs_nat环境?

如何在docker中搭建lvs_nat环境?

测试结果:

如何在docker中搭建lvs_nat环境?

建立的