1、此过程在nginx的基础上,也就是上篇博客写的内容。

2、创建项目目录并上传包,解压

$ mkdir centos_tomcat
$ cd centos_tomcat

$ tar zxvf jdk-7u80-linux-x64.tar.gz
  $ tar zxvf apache-tomcat-7.0.94.tar.gz

3、编辑Dockerfile

# From表示使用centos:latest这个镜像为基础构建我们的镜像
FROM centos:latest # 创建者的基本信息
MAINTAINER xiaozhou (xiaozhou@docker.com) LABEL Discription="基于centos的nginx镜像" version="1.0" # 把jdk文件拷到容器
ADD jdk1..0_80 /usr/local/java # 设置环境变量
ENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin
ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar # 把tomcat文件拷到容器
ADD apache-tomcat-7.0. /usr/local/tomcat7 # 服务端口
EXPOSE

4、构建镜像

$ docker build -t centos:tomcat .

5、启动容器

启动tomcat1

$ docker run --name tomcat01 -d -p : -it centos:tomcat /bin/bash
23a5ff7617772787f644a510b201fc343d541946ea12aedfb13bb2ab64dbfdeb

启动tomcat2

$ docker run --name tomcat02 -d -p : -it centos:tomcat /bin/bash
b016a1cd5a1e7da602a11243107840bf6eff47f8321a284a1f15c95988228b86

6、启动tomcat服务

登陆容器,启动服务

启动服务1

$ docker exec -it 23a5ff761777 /bin/bash
[root@23a5ff761777 /]# cd /usr/local/tomcat7/bin
[root@23a5ff761777 bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /usr/local/java/jre
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.

启动服务2

$ docker exec -it b016a1cd5a1e /bin/bash
[root@b016a1cd5a1e /]# cd /usr/local/tomcat7/bin
[root@b016a1cd5a1e bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /usr/local/java/jre
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.

7、验证并修改默认页面

浏览器输入:
http://192.168.121.121:8081

出现tomcat服务的默认访问页面

浏览器输入:
http://192.168.121.121:8082

出现tomcat服务的默认访问页面

登陆容器tomcat1

[root@23a5ff761777 /]# cd /usr/local/tomcat7/webapps/ROOT
[root@23a5ff761777 ROOT]# rm -f index.jsp
[root@23a5ff761777 ROOT]# vi index.html
<html>
<title>
webserver
</title>
<body>
<a>Simple Webserver Server1!</a>
</body>
</html>

登陆容器tomcat2

[root@b016a1cd5a1e /]# cd /usr/local/tomcat7/webapps/ROOT
[root@b016a1cd5a1e ROOT]# rm -f index.jsp
[root@b016a1cd5a1e ROOT]# vi index.html
<html>
<title>
webserver
</title>
<body>
<a>Simple Webserver Server2!</a>
</body>
</html>

刷新打开的访问页面,发现默认tomcat页面变化为

Simple Webserver Server1! 

和
Simple Webserver Server2!

8、修改nginx配置

查看所有容器:

$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b016a1cd5a1e centos:tomcat "/bin/bash" minutes ago Up minutes 0.0.0.0:->/tcp tomcat02
23a5ff761777 centos:tomcat "/bin/bash" minutes ago Up minutes 0.0.0.0:->/tcp tomcat01
d350b2c8a3d5 centos:nginx "/bin/sh -c '/bin/sh…" minutes ago Up minutes 0.0.0.0:->/tcp, 0.0.0.0:->/tcp wonderful_elion

查看tomcat容器IP:

登陆tomcat1

$ docker exec -it 23a5ff761777 /bin/bash
[root@23a5ff761777 /]# yum install net-tools -y
[root@23a5ff761777 /]# ifconfig
eth0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 172.17.0.3 netmask 255.255.0.0 broadcast 172.17.255.255
ether ::ac::: txqueuelen (Ethernet)
RX packets bytes (13.3 MiB)
RX errors dropped overruns frame
TX packets bytes (156.3 KiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen (Local Loopback)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions

登陆tomcat2

[root@b016a1cd5a1e /]# yum install net-tools -y
[root@b016a1cd5a1e /]# ifconfig
eth0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 172.17.0.4 netmask 255.255.0.0 broadcast 172.17.255.255
ether ::ac::: txqueuelen (Ethernet)
RX packets bytes (13.3 MiB)
RX errors dropped overruns frame
TX packets bytes (222.5 KiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen (Local Loopback)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions

登陆nginx容器

$ docker exec -it d350b2c8a3d5 bash

修改nginx配置文件

[root@d350b2c8a3d5 nginx-1.8.]# vi /usr/local/nginx/conf/nginx.conf
在http{} 添加
upstream tomcat_server {
server 172.17.0.3: weight=;
server 172.17.0.4: weight=;
} 在server{} 修改内容为
location / {
proxy_pass http://tomcat_server;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

重载配置

[root@d350b2c8a3d5 nginx-1.8.]# cd /usr/local/nginx/sbin
[root@d350b2c8a3d5 sbin]# ./nginx -s reload

浏览器输入:
http://192.168.121.121:32769/

出现tomcat测试内容信息,刷新页面后出现另一个tomcat的测试内容,页面轮训出现结果。

参考:

http://www.mamicode.com/info-detail-2412717.html

docker Dockerfile学习---nginx负载均衡tomcat服务的更多相关文章

  1. centos7+nginx负载均衡Tomcat服务

    接着上一篇:www.cnblogs.com/lkun/p/8252815.html 我们在上一篇在一台centos7服务器上部署了两个nginx,接下来我们使用一个nginx实现tomcat的负载均衡 ...

  2. nginx负载均衡tomcat和配置ssl

    目录 tomcat 组件功能 engine host context connector service server valve logger realm UserDatabaseRealm 工作流 ...

  3. 利用Docker快速创建Nginx负载均衡节点

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2. ...

  4. httpd或Nginx负载均衡tomcat

    实验环境:CentOS7 #两台tomcat的基本配置如下: [root@webapps localhost]#setenforce 0 [root@webapps localhost]#iptabl ...

  5. docker上配置nginx负载均衡

    采用ubuntu系统,docker安装自行百度 1.安装tomcat docker run -d -p : tomcat docker run -d -p : tomcat 安装两个实例,端口分别为8 ...

  6. docker容器配置nginx负载均衡 -----加权

    首先要准备三个nginx的容器: 第二个容器: 第三个容器: 进入第一个容器  要配置的容器(docker exec -it 容器名 /bin/bash) vi /usr/local/nginx/co ...

  7. Tomcat服务部署与Nginx负载均衡配置

    一.中间键产品介绍 目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上java语言Web站点的部分份额,该两种软件都是商业化的软件,由于性能优越,可靠性高等优点应用于大型互 ...

  8. 使用Docker快速创建.Net Core2.0 Nginx负载均衡节点

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.Self-Host Kestrel 1. 在vs2017中新建dotnet core2. ...

  9. Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群

    Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...

随机推荐

  1. 查看hive版本号

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sheismylife/article/details/33378243 hive没有提供hive - ...

  2. BUUCTF PWN部分题目wp

    pwn好难啊 PWN 1,连上就有flag的pwnnc buuoj.cn 6000得到flag 2,RIP覆盖一下用ida分析一下,发现已有了system,只需覆盖RIP为fun()的地址,用peda ...

  3. postgresql 两表关联更新

    UPDATE 要更新的表 SET 字段1 = cqt.字段1, 字段2 = cqt.字段2, FROM 数据来源表 cqt WHERE 要更新的表.bsm = cqt.bsm

  4. Android应用图标尺寸规范(转)

    转自:http://blog.sina.com.cn/s/blog_4b20ae2e0101h84o.html Android Icon Size and Location for Apps DENS ...

  5. 查看crontab执行记录

    如果出现了crontab定时任务不执行的情况,首先需要定位问题,那么就需要通过日志来确定问题所在. crontab的日志位置一般位于/var/log/cron,利用下面的语句即可查看日志. tail ...

  6. DenyHosts 安全限制ssh防暴力破解

    DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP ...

  7. spring boot 四大组件之Starter

    1.概述 依赖管理是任何复杂项目的关键方面.手动完成这些操作并不理想; 你花在它上面的时间越多,你在项目的其他重要方面所花费的时间就越少. 构建Spring Boot启动器是为了解决这个问题.Star ...

  8. git——commit成功后,GitHub方格不变绿

    一通百度该设置的都设置了,还是不好使 发现有提示一栏 pull request的东西  在网上查貌似是因为两个分支内容不同 提示是否合并,还查到了不变绿可能的原因. Contributions未被Gi ...

  9. java 多上传 CommonsMultipartFile[] files

    /** * 视频上传 * ddl * @param request * @param response * @param files * @return * @throws Exception */@ ...

  10. OpenSearch最新功能介绍

    摘要:阿里云开放搜索(OpenSearch)是一款结构化数据搜索托管服务,其能够提供简单.高效.稳定.低成本和可扩展的搜索解决方案.OpenSearch以平台服务化的形式,将专业搜索技术简单化.低门槛 ...