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. Zookeeper-技术专区-运作流程分析介绍

    Zookeeper的启动流程 Zookeeper的主类是QuorumPeerMain,启动时读取zoo.cfg配置文件,如果没有配置server列表,则单机模式启动,否则按集群模式启动,这里只分析集群 ...

  2. 求背景图片左边到#box盒子左边框外侧的距离

    box{ width: 100px; height: 200px; background: pink; padding: 100px; border: 80px solid; background-i ...

  3. 函数高阶(函数,改变函数this指向,高阶函数,闭包,递归)

    一.函数的定义方式 1.函数声明方式 function  关键字(命名函数) 2.函数表达式(匿名函数) 3.new  Function( ) var  fn = new  Function(‘参数1 ...

  4. shell变量替换扩展 变量测试

  5. 负载均衡实现故障vip自动漂移

    环境说明演示vip自动漂移 192.168.237.50 192.168.237.51 vip: 192.168.237.5 keepalived开源软件实现 keepalived可以实现当vip挂的 ...

  6. 小程序入坑(一)---如何引入iconfont 字体图标

    最近一直忙于日常任务,其实是懒癌又犯了..........不过因为自己的“懒癌”,“不思进取”给自己挖了不少坑. 一,小程序工具的安装 打开简易小程序的官网https://mp.weixin.qq.c ...

  7. leetcood学习笔记-28-KMP*

    题目: 第一次提交: class Solution: def strStr(self, haystack: str, needle: str) -> int: if not len(needle ...

  8. 让IE8兼容识别css3选择器——selectivizr-min.js

    html: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  9. Python练习题中做错题目

    1,一下代码执行的结果为 a = b = "julyedu.com" a = 'AI 教育' print(b) 答案: julyedu.com 要点: 在python中, 不可变对 ...

  10. 基于V8的JsonMapper

    <dependency> <groupId>com.eclipsesource.j2v8</groupId> <artifactId>j2v8_win3 ...