docker部署nginxtomcat集群(代码片段)

author author     2022-12-14     153

关键词:

Tomcat集群由多个tomcat组成,使用Nginx的好处是可以实现负载均衡和动静分离。
使用Docker的好处是~~~我们不需要复杂的配置,只需要执行简单的命令就能拉取已有的官方docker镜像,再通过一条命令就能运行我们的实例了。对于多个Tomcat,我们使用相同的镜像,然后使用简单的命令,就能创建不同的tomcat container实例。

技术图片
1.拉去镜像

$ docker pull tomcat:8-jre8-alpine
$ docker pull nginx:latest
$ docker images

技术图片
2.创建tomcat文件夹和webapps的交换文件夹,并创建container

$ docker run --name tomcat1 -p 18080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps  -d tomcat:8-jre8-alpine
# cc8d9b8bc8a90d0768df15f94ae2cb37694021cf637d0610d10eaee669b0d5bad
$ docker run --name tomcat2 -p 28080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps  -d tomcat:8-jre8-alpine
# 711e6a6fd1a3f6d088b8b6f527b9c558114bdd5e1592b03a18cb3abaaaf08815

创建nginx文件夹。

$ docker run --name tmp-nginx-container -d nginx
$ docker cp tmp-nginx-container:/etc/nginx/nginx $PWD/conf
$ docker cp mynginx:/usr/share/nginx/html $PWD/html
$ docker cp mynginx:/var/log/nginx  $PWD/logs
$ docker rm -f tmp-nginx-container

运行nginx

$ docker run -p 80:80 -p 8080:8080 --name mynginx -v $PWD/html:/usr/share/nginx/html -v $PWD/conf:/etc/nginx -v $PWD/logs:/var/log/nginx -d nginx

-p 18080:8080:将容器的8080端口映射到主机的18080端口
-v 挂载目录
具体参数命令可自行google,都是些简单的常用命令。

$ docker container ls

技术图片

  1. 将自己的项目放入本地的webapps目录下
    为了便于区分工程,我的项目主页获取了本地的IP和端口,分别使用18080和28080访问test项目,可以得到如下图所示信息。
    技术图片
    技术图片
    4.设置Nginx配置文件
    chrome访问服务器80端口,显示如下:
    技术图片
    Nginx的配置文件是nginx.conf,打开文件夹,发现里边并没有配置端口等信息,而是有一段:
    include /etc/nginx/conf.d/*.conf;

    这是将conf.d目录下的所有配置文件全部加入进来。其中这个欢迎页面的设置就是在其目录下的一个名叫default.conf的文件中设置的。
    模仿此文件,我们创建自己的tomcat.conf。
    然后自己配置信息相关信息。
    技术图片

  2. 测试
    输入nginx地址和tomcat server 8080端口.
    技术图片
    多次输入我们可以发现我们对应的tomcat地址会发生变化,这就是访问到了不同的tomcat。
    技术图片
    6.后期扩展
    我们可以修改不同的均衡策略,比如修改weight值,和设置备份服务器等方式来实现不同的功能。
    除了负载均衡,我们还可以进行将静态文件和动态文件进行分离,这也是Nginx的重要功能之一。

docker-容器部署consul集群(代码片段)

原文:Docker-容器部署Consul集群目录说明简介了解ConsulConsul使用场景Consul优势Consul中的概念安装准备Consul镜像安装单个Consul组装集群Consul总结引用和附件说明本文主要介绍怎么使用Docker在Linux环境部署Consul集群,如果你对Docker不了... 查看详情

docker安装运行nginxtomcat,springboot项目用dockerfile打包镜像到docker运行(代码片段)

docker运行流程首先系统要有一个dockerdaemon的后台进程在运行,当我们启动容器时会进行以下流程dockerclient(即:docker终端命令行)会调用dockerdaemon请求启动一个容器,dockerdaemon会向hostos(即:linux)请求创建容器linux会... 查看详情

docker-swarm集群部署(代码片段)

docker-swarm集群部署一、swarm介绍  Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm,它是将一群Docker宿主机变成一个单一的虚拟主机,Swarm使用标准的... 查看详情

部署consul建立docker集群(代码片段)

部署Consul建立Docker集群架构图1、什么是consul2、consul-template说明3、registrator的作用4、部署②、容器服务自动加入nginx集群③、服务端Consul下安装consul-template④、在宿主机上部署nginx⑤、部署多个Consul服务端主机架构图1、什么是cons... 查看详情

docker中redis集群部署(代码片段)

Docker中redis集群部署1.创建网卡dockernetworkcreateredis--subnet172.38.0.0/16#16有255*255设置24的话就2552.通过shell脚本创建6个redis配置forportin$(seq16);\\do\\mkdir-p/mydata/redis/node-$port/conftouch/mydata/redis/node-$po 查看详情

docker------dockerconsul集群部署(代码片段)

目录一.服务注册与发现概述二.Consul的概念三.Consul的部署环境准备1.建立Consul服务(192.168.121.22)①安装consul服务②查看集群信息③通过httpapi获取集群信息2.registrator服务器(192.168.121.33)①安装Gliderlabs/Registrator②... 查看详情

docker------dockerconsul集群部署(代码片段)

目录一.服务注册与发现概述二.Consul的概念三.Consul的部署环境准备1.建立Consul服务(192.168.121.22)①安装consul服务②查看集群信息③通过httpapi获取集群信息2.registrator服务器(192.168.121.33)①安装Gliderlabs/Registrator②... 查看详情

云原生之docker实战使用docker部署rabbitmq集群(代码片段)

【云原生之Docker实战】使用Docker部署Rabbitmq集群一、Rabbitmq介绍1.Rabbitmq简介2.Rabbitmq特点3.Rabbitmq的工作机制二、检查本地dokcer状态1.检查docker版本2.查看docker状态3.查看docker信息三、创建容器前准备工作1.创建数据卷2.创建网络3.查... 查看详情

ubuntu16.04下使用docker部署ceph集群(代码片段)

ceph集群docker部署通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试。以下的安装流程是通过linuxshell来执行的;假设你只有一台机器,装了linux(如Ubuntu)系统和docker环境,那么可以参考以下步骤安装Ceph:#要用root用户创... 查看详情

dockeroverlay应用部署(代码片段)

DockerOverlay部署条件要想使用Docker原生Overlay网络,需要满足以下任意条件: 1、Docker运行在Swarm模式 2、使用键值存储的Docker主机集群本次部署使用键值存储的Docker主机集群,需要满足以下条件:1.集群中主机连接到键值存... 查看详情

如何在docker中部署elasticsearch集群和kibana(代码片段)

做实验时需要了解Elasticsearch集群如何操作?通过使用docker-compose可以批量创建docker容器,启动ES集群。先配置文件docker-compose.yml文件如下:1version:‘2.2‘2networks:3esnet:4services:5es00:6image:docker.elastic.co/elasticsearch/elasticsearch:6.5. 查看详情

docker快速部署es集群spark集群(代码片段)

...直接在主机ip设置。我不想搞多个虚拟机,如果那样还要docker干嘛呢。首先需要设置docker容器IP   首先验证一下先从私库中拉下镜像dockerpull192.168.1.153:31809/zookeeper.new.esdockerrun-itd--netdocker-ice--ip192.168.10.11192.168.1.153:31809/zo... 查看详情

docker硬核知识-容器部署redis集群(代码片段)

...ff0c;生成数据6.测试高可用环境1.关闭防火墙、selinux2.启动dockersystemctlstartdocker3.保证可以连接互联网步骤1.创建一个redis网络dockernetworkcreatere 查看详情

docker部署rocketmq集群(代码片段)

最近搭建RocketMQ踩了一些坑,更新下第一步,创建目录mkdir-p/opt/rocketmq/logs/nameserver-amkdir-p/opt/rocketmq/logs/nameserver-bmkdir-p/opt/rocketmq/store/nameserver-amkdir-p/opt/rocketmq/store/nameserver-bmkd 查看详情

docker私有仓库部署之compose搭建consul集群(代码片段)

文章目录一、DockerCompose简介1.1DockerCompose概述1.2DockerCompose容器编排1.3DockerCompose常用命令1.4DockerCompose配置常用字段二、Consul简介2.1consul概述2.2Consul容器服务更新与发现三、部署Compose3.1安装docker、设置镜像加速3.2compose部署四、consu... 查看详情

docker4-docker网络,容器编排,集群部署(代码片段)

1,docker网络1.1,docker0有三个网络环境,那么docker是如何处理容器网络访问的?1.2,测试dockerrun-d-p80:8080--nametomcat01tomcatdockerexec-ittomcat01ipaddr本地可以ping通容器内部1.3,原理只要安装了docker,就会有一个docker的ip-docker0(这里是172.... 查看详情

elasticsearch7docker集群部署(代码片段)

背景在日志分析中常用中间件ELK,工作中需要部署一套elastic7集群用于存储数据。搭建过程如下。镜像版本elasticsearch:7.16.2kibana:7.16.2部署地址:192.168.20.20/192.168.20.21/192.168.20.22创建目录sudomkdir-p/app/server/elasticsearch/temp/configs 查看详情

基于docker部署tomcat集群nginx负载均衡(代码片段)

...自己练习一下。博文主要介绍了Tomcat集群+Ngixn负载的Docker环境部署。两种实现方式,一种是通过宿主机桥接方式,一种是通过内部网络Dockernetwork的方式Demo相关镜像以上传DockerHub:dockerpullliruilong/nginx_logdo 查看详情