未分类 · 2022年2月21日 1

Docker实现负载均衡

会用到的命令:docker run -d -p 90:80 –name nginxtest90prot nginxdocker exec -it  6d0ff313c8df bash 进入容器配置文件:

前言:对于想实现负载均衡却又苦恼于手里没有或只有一台服务器的兄弟来说,这也许是你最好的解决方式。docker是14年推出与k8s并驾齐驱的容器技术,通过docker我们可以很容易的模拟多服务器来实现负载均衡的模拟。本样例运行环境:CentOS Linux release 7.2.1511 (Core) ,以下命令行均为在centOS下操作(以下称为‘宿主机’),请根据自己实际系统进行变化。(Windows系统建议使用专业版 1.安装宿主机nginx: 首先在宿主机安装Nginx默认绑定80端口,并可访问,此处不做详解,自行配置。2.安装docker(以下均使用root权限进行操作,伙伴们如果觉得不够安全可以新建其他角色操作,但别忘了把权限加到docker用户组):在CentOS下首先使用sudo yum check-update 更新系统,这里有两种安装方式:普通安装与脚本安装,我这里用的是脚本安装 curl -fsSL https://get.docker.com/ | sh 后开始安装。安装完成后输入docker version命令来查看是否安装成功,如下:

3.启动docker: start docker4.搜索镜像:docker镜像非常方便,我们只需要选择自己需要的环境对应的镜像下载即可,省去了大量的配置时间。在这里我们直接搜索nginx镜像 使用 docker search nginx命令 查看docker Hub上的nginx镜像

5.拉取镜像:我们选择第一个nginx官方提供的docker镜像,这样比较正宗(下面的都是增强版镜像,大家也可以试试),使用命令 docker pull nginx 来拉取镜像到宿主机。拉取完成后用命令 docker images来查看是否拉取成功 如下所示

好了,镜像有了,该弄容器了。6.创建容器:在这里我只给出最简单的创建命令 详细的大家自己查吧。 命令:docker run -d -p 93:80  –name nginxtest93prot nginx  解释:-d -p是参数命令 大家照着打就行、93:80比较重要是指定运行ngigx的端口号。93是宿主机的端口号,80是nginx容器里的端口号,大白话就是把容器的nginx80端口映射到宿主机的93端口,这样你访问宿主机93就等于访问容器的80端口。 nginxtest93prot是自定义容器名,nginx表示基于nginx镜像创建容器。运行后会返回容器ID 如下:

然后在确认下是否创建 输入 docker ps命令看下,ok创建成功

在运行一下如下:

7.配置nginx容器: 容器也有了,我们现在做一些更改,好让不同的nginx有区别。首先进入容器 docker exec -it  87dbb9dbbaf4 bash  87dbb9dbbaf4是上图的容器ID 进入后如下:

然后进入nginx容器的html目录如下:

更改 index.html的内容如下(如果没有vim可通过  apt-get update,apt-get install vim来安装)

8.配置多个nginx容器重复6,7两步 设置90,91,92三个端口。(对了 退出容器快捷键:CTRL+P+Q)9.配置宿主机nginx实现负载均衡,配置如下:

然后重启服务器 切换到sbin目录 ./nginx -s reload重启 10.查看是否成功 现在访问我的Ip测试下:

ok 访问相同IP会轮训不同的端口服务,到此这个docker+nginx实现的负载均衡就完成啦!