dockerclinent访问nginx集群代理,轮询访问A,B,D容器内的web服务器,index.html显示自己名字 A基于源码ngninx的image启动 B基于commit镜像启动 B模板

Posted 爱浏览的zhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dockerclinent访问nginx集群代理,轮询访问A,B,D容器内的web服务器,index.html显示自己名字 A基于源码ngninx的image启动 B基于commit镜像启动 B模板相关的知识,希望对你有一定的参考价值。

在docker中部署nginx
1 先创建一个容器 名字叫zhaoA
[root@localhost ~]# docker create -it --name zhaoA -h nginx centos:7 /bin/bash
#我们在这里用的是centos:7的镜像

创建完成之后启动容器
[root@localhost ~]# docker start zhaoA

我们使用docker ps命令查看容器是否启动


随后我们进入容器内更改
[root@localhost ~]# docker exec -it zhaoA /bin/bash

因为容器内没有应用宝 所以我们得安装一些操作命令的应用包
我们使用yum provides ifcfong 来查看ifconfg应用包是什么

我们看到net-tools 这个是我们使用ifconfig这个命令所需要的 所以我们使用yum来安装这个命令

我们一会儿还得使用scp命令 所以我们顺便查看scp命令需要什么应用包


我们可以看到显示openssh-clients 所以我们使用yum安装它

安装完这两个我们需要命令的应用包已经安装完成 接下来就是安装nginx操作了
我们安装nginx相关的依赖环境


我们使用ifocnifg来查看容器的IP地址


查询到之后我们使用反向复制 让我们的软件包从root下复制到容器内
[root@nginx /]# scp root@172.17.0.1:/root/nginx-1.11.5.tar.gz ./
输入yes
输入密码

做完之后我们解压安装nginx
tar -zxvf nginx-1.11.5.tar.gz
cd nginx-1.11.5/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make
make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin


完成之后我们创建一个nginx用户 并且启动它

[root@nginx nginx-1.11.5]# useradd nginx
[root@nginx nginx-1.11.5]# nginx
修改网页内容
vi /usr/local/nginx/html/index.html

Welcome to zhaoA

![在这里插入图片描述](https://img-blog.csdnimg.cn/a64d45c5be524839b8bdbc04f705ab3b.png)

退出到物理机,安装浏览器
[root@localhost ~]# yum -y install elinks
进行访问
[root@localhost ~]# elinks http://172.17.0.2

制作一个nginx镜像
[root@localhost ~]# docker commit zhaoA zhao/centos-net-nginx
sha256:adabf88026e085b7900918bc6ec19cedc367cab95c83c98da135dc00373ff96a


二,创建容器B,通过commit镜像启动
创建容器B(镜像为刚制作的nginx镜像)
[root@localhost ~]# docker run -itd --name zhaoB -h nginx zhao/centos-net-nginx /bin/bash

进入容器,进行配置


我们使用ifconfig看到我们的容器B的IP地址为0.3 我们访问0.3


三,创建容器D,通过模板镜像启动
1,先在物理机上,导出一个模板镜像
[root@localhost ~]# docker export zhaoA > moban.tar


2,导入模板镜像(镜像为刚导出的模板,直接导入进去就行)
!!!创建容器不能直接用moban.tar,

3,创建容器web_D(镜像为刚导入过的模板)
[root@localhost ~]# docker run -itd --name zhaoD -h nginx zhao_d /bin/bash

5,进入修改内容,及启动nginx
root@localhost ~]# docker exec -it zhaoD /bin/bash


查看容器D的ip


四,ABD三个nginx完成后,在物理机上安装nginx,做反向代理
解压
yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
tar -zxvf nginx-1.11.5.tar.gz
cd nginx-1.11.5/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
make
make install
ln -s /usr/local/nginx/sbin/* /usr/local/sbin
useradd nginx


2,添加修改配置文件
vi /usr/local/nginx/conf/nginx.conf



启动nginx

3,进行访问物理机IP


刷新



OK!!!

以上是关于dockerclinent访问nginx集群代理,轮询访问A,B,D容器内的web服务器,index.html显示自己名字 A基于源码ngninx的image启动 B基于commit镜像启动 B模板的主要内容,如果未能解决你的问题,请参考以下文章

Linux中Nginx反向代理下的tomcat集群

Java开发者要了解的 Nginx 反向代理与负载均衡

Nginx+Tomcat的负载均衡与动静分离集群

Tomcat集群+Nginx反向代理+负载均衡

Nginx 负载均衡反向代理

Docker集群实验环境布署--swarm6 配置上层Nginx代理,让任意Docker client访问得到高可用的管理API