1.先把tomcat项目跑起来,再往nginx上面配置

1.1拉取tomcat

docker pull tomcat:8

1.2运行tomcat (这里使用8080端口,因为nginx使用80端口)

docker run -di  -p 8080:8080 --name=mytomcat1   tomcat:8

1.3将war包放到tomcat的webapps目录下(我这里默认是在root目录下,自己确定自己的当前路径)

docker cp   project.war  mytomcat1:/usr/local/tomcat/webapps/project.war

1.5 去掉项目名先将他复制出来

docker cp  mytomcat1:/usr/local/tomcat/conf/server.xml  server.xml

1.6在server.xml的Host标签中添加

这里分为两种情况

第一种非springBoot War项目的 linux部署

//docBase是你的项目名字
<Context path="" docBase="project" debug="0"/>

第二种 springBootWar包linux部署

将appbase设置为空,docbase设置为绝对路径

      <Host name="localhost"  appBase=""unpackWARs="true" autoDeploy="true"><Context path="" docBase="/usr/local/tomcat/webapps/project" debug="0"/><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /></Host>

ps;这里说下 appBase跟docBase的区别

appBase目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用

docBase指向了你某个应用的目录,这个可以和appBase没有任何关系。
总结:
如果你想自己指定路径,那么应该在docBase里面
如果你想简单,那么直接把他们复制到appBase下面就行
这个区别摘自:https://blog.csdn.net/chenxiaodan_danny/article/details/45397765

1.7再将文件覆盖到容器中

docker cp   server.xml mytomcat1:/usr/local/tomcat/conf/server.xml

1.8重启tomcat

docker stop   mytomcat1
docker start   mytomcat1

这个时候访问项目: ip:8080 是可以正常访问的(如果有问题,请不要进行下面的操作)

2.拉取nginx

docker pull nginx

2.1:创建运行nginx镜像(走80端口)443端口用于设置https具体看另外一篇

docker run -di --name=nginx -p 80:80 -p443:443  nginx /bin/bash  //创建Nginx容器

2.2 测试Nginx

浏览器地址栏输入:ip 是可以正常访问的

2.3配置反向代理

将nginx.conf复制出来

docker cp nginx:/etc/nginx/nginx.conf nginx.conf

2.4查看tomcat的ip地址

我这里是172.17.0.6,每个都不同自行替换哈

docker inspect mytomcat1|grep "IPAddress"

2.4修改nginx.conf(将upstream tomcat的ip替换为tomcat的ip)

user nginx;worker_processes 1;error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;events {worker_connections 1024;
}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 65;
#开启压缩,提高网站的访问效率
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";upstream tomcat {server 172.17.0.4:8080;
}
server {listen 80;
server_name localhost;
location / {proxy_pass http://tomcat;
index index.html index.htm;
}
}include /etc/nginx/conf.d/*.conf;
}

2.5 将修改后的配置文件拷贝到容器

docker cp nginx.conf  nginx:/etc/nginx/nginx.conf

2.6 重启nginx

docker restart nginx

2.7 测试

ip地址

最新 Docker 部署nginx Tocmat跑项目(解决springBoot启动两次的问题)相关推荐

  1. 在用docker部署nginx时,出现curl: (6) Could not resolve host: localhsot; 未知的错误

    在用docker部署nginx时,出现错误 问题一 问题 分析 解决 问题二 问题 分析 解决 问题一 问题 使用curl www.baidu.com命令出现 curl: (6) Could not ...

  2. 使用docker部署nginx搭建简单的idea-2019 jrebel插件激活服务器

    使用docker部署nginx搭建简单的idea-2019 jrebel插件激活服务器 前言 之前用的jrebel激活方式一直都是用的 *lanyus* 大神的 [jrebel激活](http://i ...

  3. docker部署nginx 并实现反向代理 配置多个域名多个端口

    文章目录 docker部署nginx 并实现反向代理 配置多个域名多个端口 1. 安装nginx: 2. 以终端的方式打开镜像容器 default.conf: nginx.conf: 3. 在linu ...

  4. Docker学习篇——使用Docker部署账单微服务项目

    Docker概念 Docker 是一个开源的应用容器引擎 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc) Docker 可以让开发者打包他们 ...

  5. Docker部署nginx、配置域名

    文章目录 背景 1. 拉取nginx镜像 2. 启动nginx 3. 通过docker修改nginx配置 1) 挂载配置文件 2) 重新加载配置文件 4. 配置我的域名 小结 背景    docker ...

  6. docker初体验:docker部署nginx负载均衡集群

    Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx负载均衡集群 环境 ce ...

  7. docker初体验:docker部署nginx服务

    Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx 环境 centos7 ...

  8. docker部署nginx并且挂载文件夹和文件

    docker部署nginx并且挂载文件夹和文件 2018年05月30日 10:18:32 丢你刘某 阅读数:2315 这段时间在研究docker,在部署nginx时遇到了坑,最主要的问题是在挂载文件和 ...

  9. docker nginx tomcat mysql_使用docker部署nginx+tomcat架构(2):访问mysql数据库

    上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进 ...

最新文章

  1. 为反对种族歧视,GitHub正在把master/slave等术语替换掉
  2. latex 编译Underfull \hbox (badness 10000) in paragraph警告
  3. Cannot read property 'nodeType' of null; audio元素默认样式下载按钮
  4. 艺龙十万级服务器监控系统开发的架构和心得
  5. 虚拟机的网络连接三种形式的说明
  6. BZOJ-2190-仪仗队-SDOI2008-欧拉函数
  7. 【工作相关】公子龙:工作后我变强了,暂时没秃
  8. Web设计师须知的10项SEO技巧
  9. AD PCB导出Gerber文件(非常详细的步骤)
  10. Django-创建一个完整的项目-详细教程
  11. 部分软件可以正常打开,但图标无法正常显示
  12. OpenCV每日函数 WeChat QR 微信二维码检测器
  13. Hive(二):with as用法
  14. 个人热爱软件编程,我对自己做了一个总结
  15. FPGA学习-9-ip核之ARM
  16. 用Obspy读取segy的文件头并保存到csv数据库
  17. aspen和python一起使用_aspen plus 能不能用python
  18. thinkphp网站提示缓存文件写入失败
  19. cisco 3550
  20. 当用户流失比较明显后,如何提升活跃度?

热门文章

  1. 进入环境_如何进入Windows恢复环境(WinRE)
  2. Vuex新手的理解与使用
  3. Unity3D学习(七):Unity多重采样抗锯齿设置无效的解决办法
  4. 给JBoss种蛊分析
  5. idea maven 创建webapp项目没有src目录
  6. plupload+artdialog实现多平台文件上传
  7. Ubuntu12下安装redis(多图版)+ Jedis连接Redis
  8. 转:两种转换mysql数据编码的方法-latin1转utf8
  9. 利用dns解析来实现网站的负载均衡
  10. [Python人工智能] 二十九.什么是生成对抗网络GAN?基础原理和代码普及(1)