zoukankan      html  css  js  c++  java
  • Docker Compose部署 nginx代理Tomcat集群

    一、简介

      使用Docker镜像部署Nginx代理的多个Tomcat集群:

    • 使用Dockerfile构建nginx镜像
    • 使用Dockerfile构建tomcat镜像
    • mysql镜像使用docker hub 镜像

      1.1 结构

    docker-compose.yml 
    etc
    └── localtime
    mysql
    ├── conf
    │   └── my.cnf
    └── mysqldb
    nginx
    ├── conf.d
    │   └── test.conf
    ├── Dockerfile
    ├── logs
    ├── nginx-1.12.1.tar.gz
    └── nginx.conf
    tomcat
    ├── apache-tomcat-8.5.12.tar.gz
    ├── Dockerfile
    ├── jdk-8u121-linux-x64.tar.gz
    └── server.xml
    webapps
    
    # webapps 用于放置tomcat项目使用
    
    # mysqldb 数据将会存放在 mysql/mysqldb中
    

      

    二、部署和构建

      2.1 Nginx Dockerfile

    FROM centos:latest
    MAINTAINER bigberg
    RUN yum -y install pcre-devel openssl-devel net-tools gcc gcc-c++ zlib zlib-devel 
        make openssl
    ADD nginx-1.12.1.tar.gz /tmp/
    RUN cd /tmp/nginx-1.12.1 
        && ./configure --prefix=/usr/local/nginx 
         --with-http_ssl_module 
         --with-http_gzip_static_module 
         --with-http_realip_module 
        && make && make install
    RUN mkdir -p /usr/local/nginx/logs 
        && groupadd -g 1001 nginx 
        && useradd -g 1001 -u 1001 -s /sbin/nologin -M nginx
    
    CMD ["/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
    nginx dockerfile

      2.2 Tomcat Dockerfile

    FROM centos
    MAINTAINER bigberg
    
    ADD jdk-8u121-linux-x64.tar.gz /usr/local
    ENV JAVA_HOME /usr/local/jdk1.8.0_121
    ADD apache-tomcat-8.5.12.tar.gz /usr/local
    COPY server.xml /usr/local/apache-tomcat-8.5.12/conf/server.xml
    
    EXPOSE 8080
    ENTRYPOINT ["/usr/local/apache-tomcat-8.5.12/bin/catalina.sh", "run"]
    Tomcat Dockerfile

      2.3 docker-compose.yml  

    version: '3'
    services:
      # web-server  
      nginx:
        build:
          context: ./nginx
          dockerfile: Dockerfile
        ports:
          - "80:80"
          - "443:443"
        links:
          - tomcat01:tomcat01
          - tomcat02:tomcat02
          - tomcat03:tomcat03
        volumes:
          - ./webapps:/opt/webapps
          - ./nginx/logs:/usr/local/nginx/logs
          - ./etc/localtime:/etc/localtime
          - ./nginx/nginx.conf:/usr/local/nginx/conf/nginx.conf:ro
          - ./nginx/conf.d/:/usr/local/nginx/conf.d/:ro
        depends_on:
          - mysql
          - tomcat01
          - tomcat02
          - tomcat03
      # tomcat
      tomcat01:
        hostname: tomcat01
        build: ./tomcat
        links:
          -  mysql:mysql
        volumes:
          - ./webapps:/usr/local/apache-tomcat-8.5.12/webapps
          - ./etc/localtime:/etc/localtime
    
      tomcat02:
        hostname: tomcat02
        build: ./tomcat
        links:
          -  mysql:mysql
        volumes:
          - ./webapps:/usr/local/apache-tomcat-8.5.12/webapps
          - ./etc/localtime:/etc/localtime
    
      tomcat03:
        hostname: tomcat03
        build: ./tomcat
        links:
          -  mysql:mysql
        volumes:
          - ./webapps:/usr/local/apache-tomcat-8.5.12/webapps
          - ./etc/localtime:/etc/localtime
    
      # mysql
      mysql:
        hostname: mysql
        image: mysql:latest
        ports:
         - "3307:3306"
        volumes:
          - ./mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf
          - ./mysql/mysqldb:/var/lib/mysql
          - ./etc/localtime:/etc/localtime:ro
        environment:
          - MYSQL_ROOT_PASSWORD=123456
    docker-compose.yml

      2.4 编写index.jsp文件

    sudo mkdir webapps/ROOT
    
    sudo vim webapps/ROOT/index.jsp
    
    
    nginx-tomcat cluster
    

      2.5 构建

    docker-compose up
    

      2.6 查看

    $ docker-compose ps
             Name                       Command               State                    Ports                  
    ----------------------------------------------------------------------------------------------------------
    nginxtomcat_mysql_1      docker-entrypoint.sh mysqld      Up      0.0.0.0:3307->3306/tcp                  
    nginxtomcat_nginx_1      /usr/local/nginx/sbin/ngin ...   Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
    nginxtomcat_tomcat01_1   /usr/local/apache-tomcat-8 ...   Up      8080/tcp                                
    nginxtomcat_tomcat02_1   /usr/local/apache-tomcat-8 ...   Up      8080/tcp                                
    nginxtomcat_tomcat03_1   /usr/local/apache-tomcat-8 ...   Up      8080/tcp 
    

      

      相关文档:https://github.com/Bigberg/docker/tree/master/nginx-tomcat

                             里面去掉了nginx/tomcat/jdk的安装包,需添加(版本在Dockerfile中)

  • 相关阅读:
    flash 显示对象的getRect()方法的问题
    John Maccarthy
    一个c++ 2d图形引擎 AGG
    lisp 编程入门
    linux图形开发工具
    wxDevC++ – Dev C++的愛好者一定要知道的C++ IDE
    备忘 html5 canvas context2d/3d
    windows下使用boost库可以下载编译好的二进制安装包
    酷壳
    [.NET] : Provider Pattern
  • 原文地址:https://www.cnblogs.com/bigberg/p/8516026.html
Copyright © 2011-2022 走看看