Tomcat镜像制作与启动

Dockerfile如下

    FROM docker.io/sssllc/centos7.-jdk1.

    #update
RUN yum -y update; yum clean all && yum install -y wget unzip tar net-tools #install jdk && tomcat
#ADD jdk-8u151-linux-x64.tar.gz /usr/local/        #原始镜像不存在jdk环境是使用(上下文有这个文件存在)
ADD tomcat7.tar.gz /usr/local/ #设置环境变量
#ENV JAVA_HOME /usr/local/jdk1..0_151                    #如果有jdk环境的话略过
#ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.
ENV CATALINA_BASE /usr/local/apache-tomcat-7.0.
#ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ENV LC_ALL en_US.UTF-8                  #防止乱码 EXPOSE CMD /usr/local/apache-tomcat-7.0./bin/catalina.sh run

build镜像

docker build -t tomcat7 .

启动tomcat并将镜像push到私有仓库

//启动
docker run -itd -p : --name tomcat1 -v /data/admin-web/:/data/webapp tomcat7      #/data/webapp为tomcat代码发布目录 //push到私有仓库
docker tag tomcat7 10.10.10.12/hztest/tomcat7-jdk1.8      #首先打标签
docker push 10.10.10.12/hztest/tomcat7-jdk1.

nginx镜像配置

pull原始镜像

docker pull registry.cn-hangzhou.aliyuncs.com/kkf_centos7/nginx

自定义镜像,dockerfile如下

FROM registry.cn-hangzhou.aliyuncs.com/kkf_centos7/nginx

COPY nginx.conf /etc/nginx/nginx.conf

EXPOSE 

nginx.conf如下

user  nginx;
worker_processes ; error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; events {
worker_connections ;
} http {
include /etc/nginx/mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on;
tcp_nopush on; keepalive_timeout ;
types_hash_max_size ;
gzip on; #include /etc/nginx/conf.d/*.conf;
       #负载均衡,下面的tomcat01和tomcat02为nginx连接tomcat容器时给容器设置的别名的名称,即配置文件写啥名,link指定的别名就为啥名
upstream tomcat_client {              
server tomcat01:8080 weight=1;      
server tomcat02:8080 weight=1;
} server {
server_name "";
listen 80 default_server;
listen [::]:80 default_server ipv6only=on; location / {
proxy_pass http://tomcat_client;      #反向代理
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}

build 打包并push到私有仓库

docker build -t nginx .
docker tag nginx 10.10.10.12/hztest/nginx
docker push 10.10.10.12/hztest/nginx

启动所有容器

#注意:如果需要查看日志,需要加上log目录的映射,log目录查看dockerfile和nginx配置文件即可得到

//启动tomcat容器(两个)
docker run -itd -p :8080 --name tomcat1 -v /data/admin-web/:/data/webapp tomcat7      
docker run -itd -p : --name tomcat2 -v /data/admin-web/:/data/webapp tomcat7 //启动nginx容器,指定--link,会在nginx的容器hosts文件里生成一条tomcat容器的host记录,格式为 tomcat1容器ip 容器名(tomcat1) 容器别名(tomcat02) tomcat容器主机名(containerid)
docker run --name nginx --link=tomcat1:tomcat01 --link=tomcat2:tomcat02 -p : -idt nginx #link下 第一个tomcat1为 tomcat1容器的容器名,第二个tomcat1为此容器的别名。在nginx配置文件里指定的别名

docker-compose

创建docker-compose.yml文件

version: ''
services:
nginx1:
container_name: nginx
image: 10.10.10.12/hztest/nginx
links:                   #links这里tomcat1为容器名,tomcat01为tomcat1的别名。nginx连接tomcat1的配置文件里,写tomcat01即可
- tomcat1:tomcat01
- tomcat2:tomcat02
ports:
- "80:80"
volumes:
- /data/logs/nginx:/var/log/nginx/
depends_on: #依赖redis启动才能启动tomcat,可忽略
- tomcat01
- tomcat02
restart: always tomcat1:
container_name: tomcat1
image: 10.10.10.12/hztest/tomcat7-jdk1.
ports:
- "8081:8080"
volumes:
- /data/admin-web:/data/webapp
- /data/logs/admin/tomcat1:/usr/local/apache-tomcat-7.0./logs
environment:
TOMCAT_SERVER_ID: tomcat_server_001 depends_on: #依赖redis起来后才能启动tomcat,如果没有可忽略
- redis restart: always tomcat2:
container_name: tomcat2
image: 10.10.10.12/hztest/tomcat7-jdk1.
ports:
- "8082:8080"
volumes:
- /data/admin-web:/data/webapp
- /data/logs/admin/tomcat2:/usr/local/apache-tomcat-7.0./logs
environment:
TOMCAT_SERVER_ID: tomcat_server_002 depends_on: #依赖redis起来后才能启动tomcat,如果没有可忽略
- redis
- rabbitmq
- mongodb restart: always

启动

docker-compose up          #前台启动

docker-compose up -d      #后台启动

docker-compose restart   #重启

docker-compose之Nginx+Tomcat代理配置的更多相关文章

  1. docker,构建nginx反向代理tomcat

    Nginx实现负载均衡是通过配置nginx.conf来实现的,nginx.conf的全部内容如下: user nginx; worker_processes 1; error_log /var/log ...

  2. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  3. nginx+tomcat安装配置

    nginx+tomcat安装配置 # nginx+tomcat安装配置 #创建网站目录 mkdir -p /www/wwwroot cd /www #安装配置 wget http://mirrors. ...

  4. nginx反向代理配置实例分享

    nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...

  5. nginx 正向代理配置

    需求场景:从以下俩张图可以比较直观的理解正向代理的作用(在其他文章中会表示为“http代理”,注意当前文档的配置不支持https代理) Nginx正向代理配置文件: server{ listen de ...

  6. Docker Compose部署 nginx代理Tomcat集群

    一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...

  7. 使用python自动生成docker nginx反向代理配置

    由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...

  8. Nginx反向代理配置可跨域

    由于业务需要,同一项目中的前端代码放在静态环境中,而后端代码放在tomcat中,但此时问题却出现了:前端使用ajax请求后端获取数据时出现如下报错 XMLHttpRequest cannot load ...

  9. spring-boot+nginx+tomcat+ssl配置笔记

    如果你的tomcat应用需要采用ssl来加强安全性,一种做法是把tomcat配置为支持ssl,另一种做法是用nginx反向代理tomcat,然后把nginx配置为https访问,并且nginx与tom ...

随机推荐

  1. Python探索记(18)——文件File

    # @Time : 2017/7/8 21:10 # @Author : 原创作者:谷哥的小弟 # @Site : 博客地址:http://blog.csdn.net/lfdfhl # @DESC : ...

  2. Arcgis for Androd API开发系列教程(一)——地图显示与GPS定位

    序:最近呢,工作鸭梨不是怎么大,对于自己爱折腾的想法又冒出了水面,开始自己的android开发的学习之旅.但是呢,本人是做GIS的,所以呢,就打算从这方面入手看看,是不是有什么比较好玩的玩意呢,这才导 ...

  3. Android使用Http协议访问网络——HttpConnection

    套路篇 使用HttpConnection访问网络一般有如下的套路: 1.获取到HttpConnection的实例,new出一个URL对象,并传入目标的网址,然后调用一下openConnection() ...

  4. Lua编程

    lua编程大杂烩.博客其他方面也不错.先记录.http://www.cnblogs.com/stephen-liu74/category/360139.html

  5. 记录几个基础的SQL开发题

    1. 表A有5行数据,表B有7行数据,问Inner Join最多返回几行数据,Left Join最多返回几行数据,分别在什么情况下? Inner Join 是返回关联表的Cartesian produ ...

  6. vue router 传参 获取不到query,params

    千万要注意,获取query/params 是this.$route.query 不是this.$router.query!!!

  7. ReactJS开发环境搭建与相关工具介绍

    现在Web开发的技术几年前相比可谓变化之大.各种各样的框架,各种各样的工具,让Web开发效率更高,开发出来的效果更好.同时带来的是开发环境的复杂度相比以前是成倍的增加.ReatJS框架是现在比较流行的 ...

  8. Java Integer和String内存存储

    标签: java内存string 2016-01-10 12:51 1545人阅读 评论(2) 收藏 举报  分类: Java(7)  版权声明:本文为博主原创文章,未经博主允许不得转载. 先看代码: ...

  9. lua语法基本

    lua的下载 http://luabinaries.sourceforge.net/点击所要下载的版本比如我下的是5.3.3https://sourceforge.net/projects/luabi ...

  10. linux 下SPI通信注意事项(待续)

    一.2台Linux设备之间使用SPI通信 1.标准Linux只支持Master 模式.但是可以在驱动中修改为Slave模式: 2.硬件SPI可能支持Slave模式,也可能不支持.这个要提前确认好: 3 ...