注意:先安装docker  我这边已经安装好docker

1、拉取nginx 和 tomcat的镜像

docker pull  nginx

docker pull  tomcat

2、启动两个容器实例

docker run -d -p 80:80 --name nginx1 nginx

docker run -d -p 8080:8080 --name=tomcat1 tomcat 

3、进入容器进行修改

注意:我这边用的是最新版的tomcat所以无法直接访问tomcat的web页面,必须要替换一下才可以访问

docker exec -it 容器id bash                      #进入tomcat容器

rm -rf webapps                                         #删除webapps 

mv webapps.dist/  webapps                    #改名

4、将容器内部文件拷贝到宿主机

mkdir /opt/data                                                                    #创建nginx存放目录

docker cp 容器id:/etc/nginx /opt/data/nginx                        #拷贝nginx 的配置文件

mkdir /opt/tomcat1                                                             #创建tomcat1的存放目录

mkdir /opt/tomcat2                                                             #创建tomcat2的存放目录

docker  cp 容器id:/usr/local/tomcat/conf  /opt/tomcat1/     #拷贝配置文件到tomcat1

docker  cp 容器id:/usr/local/tomcat/webapps  /opt/tomcat1/ #拷贝web文件到tomcat1

docker  cp 容器id:/usr/local/tomcat/conf  /opt/tomcat2/     #拷贝配置文件到tomcat2

docker  cp 容器id:/usr/local/tomcat/webapps  /opt/tomcat2/  #拷贝web文件到tomcat2

5、修改tomcat1的web页面防止弄混

vim /opt/tomcat1/webapps/ROOT/index.jsp

将输出的内容改为tomcat1=8080

6、修改tomcat2的配置文件内的端口

vim /opt/tomcat2/conf/server.xml

7、将我们之前启动的tomcat容器删除防止端口争抢而报错

docker ps

 docker stop 容器id

 docker rm 容器id

8、启动两个tomcat容器实例

docker run -d --name tomcat1 -p 8080:8080 -v /opt/tomcat1/conf/:/usr/local/tomcat/conf/ -v /opt/tomcat1/webapps/:/usr/local/tomcat/webapps/ tomcat

docker run -d --name tomcat2 -p 9090:9090 -v /opt/tomcat2/conf/:/usr/local/tomcat/conf/ -v /opt/tomcat2/webapps/:/usr/local/tomcat/webapps/ tomcat

9、在浏览器打开检查

查看tomcat1 本机IP加8080端口

查看tomcat2 本机IP加9090端口

10、启动成功后在nginx的http模块下配置如下

注意我们在上面的操作中已经将nginx的配置文件拷贝到/opt/data/nginx中所以我们可以直接在宿主机进行修改配置

vim data/nginx/nginx.conf

upstream www.sy.com{

server 172.17.0.3:8080 weight=5;

server 172.17.0.4:9090 weight=10;

}

注意:如果不知道容器IP可用以下命令查看

docker inspect 容器ID

因为我在本地进行了hosts解析所以直接写的域名如果不配置解析可直接写IP

11、修改conf.d/default.comf配置文件

vim /opt/data/nginx/conf.d/defaulf.conf

12、将我们之前启动的nginx容器删除并启动新的nginx容器

docker stop 容器id

docker rm  容器id

docker run -d -p 80:80 --name nginx1 -v /opt/data/nginx/:/etc/nginx nginx

13、在浏览器进行访问

http://IP:80

通过反馈会发现会在两个页面之间进行跳转

当然我们通过域名访问也是可以的

www.sy.com

proxy_pass配置upstream对象即可;

这样就可以实现负载均衡,我们请求nginx服务器地址,不断刷新请求,就会在两台tomcat机器进行跳转显示内容,达到负载均衡的目的。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐