Docker Compose部署 nginx代理Tomcat集群
2023-09-14 09:08:29 时间
一、简介
使用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;"]
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"]
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
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中)
相关文章
- docker安装及核心配置
- docker修改daemon.json 添加私有仓库重启报错
- Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
- Docker+Nginx配置后台服务发布
- 关于服务器安装docker后无法ping通内网
- docker 各种参数配置
- docker的常用命令汇总_Docker命令
- Docker知识点(二):常用命令介绍
- Maven配置Tomcat_maven和tomcat的区别
- Docker将镜像导出到本地,上传至内网服务器上
- 基于window10使用docker-composer创建mysql数据库和tomcat环境
- Docker学习系列11-Docker常规方式安装软件
- Docker服务的搜索镜像命令(docker search 镜像名称)
- Windows安装使用Docker,方便你的开发和部署(DockerDesktop篇)
- 【Docker 系列】docker 学习 三
- kafka学习一:docker安装kafka
- docker安装redis
- Docker容器的重启策略及docker run的–restart选项详解程序员
- Linux系统中使用Tomcat快速配置方法(linux配置tomcat)
- Linux中查看Tomcat启动日志的技巧(linux查看tomcat启动日志)
- 改变Linux Tomcat的端口号:一步一步来(linux修改tomcat端口号)
- Linux下安装Tomcat服务器的步骤(linux上安装tomcat)
- Linux下启动Tomcat的简易指令(linux启动tomcat命令)
- docker从Abp到MySQL,使用Docker快速部署(abpmysql)
- 镜像的缓存特性 – 每天5分钟玩转 Docker 容器技术(14)
- docker用Docker构建Redis集群的步骤(redis集群使用)
- Tomcat加Redis提升程序效率的新黄金搭档(tomcat加redis)
- Tomcat 与 Redis 的桥梁惠泽互联(tomcat与redis)