docker nginx 负载均衡
docker 做nginx负载,准备3个端口,需要打开端口能正常使用
第一,下载nginx,已有省略,docker search nginx(查看你所需要的的nginx版本),接着拉取你所需要的版本
$ docker pull nginx:latest(这里是拉取最新版本,nginx:latest这个你可以换你所需的版本)
接着看自己镜像有没有接着看自己镜像有没有
$ docker images 或者 docker image ls
看到有就运行多个nginx容器,设置不同端口
$ docker run --name nginx1 -p 8990:80 -d nginx
$ docker run --name nginx2 -p 8991:80 -d nginx
$ docker run --name nginx3 -p 8992:80 -d nginx
(nginx1,2,3)就是你的容器名,后面就用这个来进入或者操作一些docker命令,不然的话就用docker给的ID
8990就是你要监听这个nginx的端口,访问的时候可以IP:8990 IP:8991 IP:8992
-d nginx 后台运行nginx ,还有这个nginx就是你拉取镜像的名字,你可以查看自己镜像的nginx名字,最新的就是nginx
启动之后直接在浏览器访问 IP:8990就有欢迎页面(默认的欢迎html在/usr/share/nginx/html/index.html 必须先进去指定的容器才能看到后面会讲到
进入容器,配置负载,配置个主服务器,来负载其他服务器
$ docker exec -it nginx1 /bin/bash
查找配置文件,一般没有指定给nginx文件默认路径就在/etc/nginx/nginx.conf,然后编辑它
$ vim /etc/nginx/nginx.conf (这里要是报错,vim command not found, 接下来两步骤,PS:其实这里可以把里面配置挂载到本地的)
$ apt-get update
$ apt-get install vim
$ vim /etc/nginx/nginx.conf
![](https://img2020.cnblogs.com/blog/2285546/202111/2285546-20211119174930500-481080903.jpg)
保存退出,我这里弄的是默认轮循,相关upstream可以百度下其他负载策略,之后就重启nginx,还有启动容器,就在容器里操作,启动之前可以修改下其他两个的index.html文件这样好识别负载成功没
$ service nginx restart (这里是nginx1容器里面)
$ docker start nginx1 (这里的是出来容器启动docker服务器)
因为进入的是nginx1容器里配置的负载,所以重启nginx加开启容器nginx1
就可以访问了IP:8990
![](https://img2020.cnblogs.com/blog/2285546/202111/2285546-20211119180237131-800812192.jpg)
![](https://img2020.cnblogs.com/blog/2285546/202111/2285546-20211119180245176-1948850496.jpg)