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. Maven入门:Maven的基本概念

    本文转自:http://www.tianmaying.com/tutorial/maven-basic 看这篇文章之前,你应该先Run起来一个简单的Maven项目,先有个感性认识,然后再来听听对这些基 ...

  2. Git常用命令以及用法

    一 如何让单个文件回退到指定的版本 1.   进入到文件所在文件目录,或者能找到文件的路径 查看整个目录的修改记录 git log . 2.   回退到指定的版本 git reset f7a22076 ...

  3. iOS 单元测试和UI测试教程

    原文:iOS Unit Testing and UI Testing Tutorial 作者:Audrey Tam 译者:kmyhy 编写测试不是为了追求刺激,测试是为了避免你崭新的 App 变成了充 ...

  4. 【学习】Git和Github菜鸟入门

    Git 是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 目录(自己创建吧) 生成ssh密钥:ssh-keygen -t rsa -C "邮箱" ...

  5. OneNote如何使用

    自从安装了Office2013后发现office套件中有很多的好东西,今天要和大家分享的就是Office套件中的OneNote软件,这狂软件能够很方便的记录我们生活中的一些学习资料.一些决绝方法的经验 ...

  6. shh整合后web.xml、spring配置文件和struts.xml的内容

    1:web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  7. 【BZOJ2908】又是nand 树链剖分+线段树

    [BZOJ2908]又是nand escription 首先知道A nand B=not(A and B) (运算操作限制了数位位数为K)比如2 nand 3,K=3,则2 nand 3=not (2 ...

  8. javax.servlet-api-xx.jar和servlet-api.jar区别

    一.简介支持servlet的jar包.应该叫servlet-api.jar如果编写过servlet就知道要用到HttpServletRequest和HttpServletResponse等对象,这些对 ...

  9. CSS冷门但有用的知识整合

    1. 滚动条样式设置 The ::-webkit-scrollbar CSS pseudo-element(伪元素) affects the style of the scrollbar of an ...

  10. mybatis-spring升级导致的异常

    先记录一下,已被后面排查问题 升级前pom.xml依赖信息: <dependency> <groupId>org.mybatis</groupId> <art ...