前言

tomcat部署web项目非常方便,把war包放到webapps目录就可以了。本篇使用docker快速搭建一个tomcat环境

下载tomcat镜像

拉取官方最新版tomcat镜像

[root@yoyo ~]# docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
6f2f362378c5: Pull complete
494c27a8a6b8: Pull complete
7596bb83081b: Pull complete
372744b62d49: Pull complete
fb72767f9beb: Pull complete
3fe571af508a: Pull complete
3e6725074325: Pull complete
9ffd5dadda90: Pull complete
4e051c2969b0: Pull complete
b326a8316680: Pull complete
Digest: sha256:cea26a23e1ebdbebdddde1e02a10e655b0b386d8de6002301a037a08be87a12f
Status: Downloaded newer image for tomcat:latest

查看已下载的镜像文件

[root@yoyo ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos v7.5 254d4dfe9df7 3 days ago 200MB
tomcat latest 5377fd8533c3 2 weeks ago 506MB
mysql 5.6 3ed1080b793f 2 weeks ago 256MB
mysql 5.7 a1aa4f76fab9 2 weeks ago 373MB
centos/python-36-centos7 latest b8d15efaa8ec 2 months ago 651MB
centos centos7.5.1804 cf49811e3cdb 3 months ago 200MB
ubuntu 15.10 9b9cb95443b5 2 years ago 137MB
training/webapp latest 6fae60ef3446 4 years ago 349MB

运行容器

使用docker run 运行一个tomcat的容器

  • --name yoyotomcat 容器重命名yoyotomcat
  • -p 8090:8080 容器的8080端口映射到主机的8090端口
  • -v ~/yoyo/tomcat/webapps/jenkins:/usr/local/tomcat/webapps/jenkins 容器的/usr/local/tomcat/webapps/jenkins 目录挂载到本机~/yoyo/tomcat/webapps/jenkins
  • -d 挂后台运行

docker run --name yoyotomcat -p 8090:8080 -v ~/yoyo/tomcat/webapps/jenkins:/usr/local/tomcat/webapps/jenkins -d tomcat

运行成功后 docker ps查看已运行容器

[root@yoyo jenkins]# docker run --name yoyotomcat -p 8090:8080 -v ~/yoyo/tomcat/webapps/jenkins:/usr/local/tomcat/webapps/jenkins -d tomcat

[root@yoyo jenkins]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d07763a6eaa tomcat "catalina.sh run" 15 minutes ago Up 7 minutes 0.0.0.0:8090->8080/tcp yoyotomcat
643c1f7c970c mysql:5.7 "docker-entrypoint.s…" 8 hours ago Up 27 minutes 33060/tcp, 0.0.0.0:3309->3306/tcp yoyomysql
37a3b50d151c mysql:5.6 "docker-entrypoint.s…" 25 hours ago Up 26 minutes 0.0.0.0:3308->3306/tcp mymysql
[root@yoyo jenkins]#

如果用的是阿里云服务器,需在后台开放8090端口,这样在浏览器输入http://主机ip:8090就能访问到tomcat首页了

部署war包

tomcat环境已经部署完成,接下来把war包放到tomcat下的webapps目录就可以了,也就是/usr/local/tomcat/webapps。

前面启动的时候,/usr/local/tomcat/webapps/jenkins目录是挂载到本机的~/yoyo/tomcat//webapps/jenkins目录。

只需下载jenkins.war放到jenkins目录就可以了

  • cd 到~/yoyo/tomcat/webapps/jenkins/目录
  • wget 下载jenkins.war
  • jar -xvf 解压jenkins.war
[root@yoyo jenkins]# cd ~/yoyo/tomcat/webapps/jenkins/
[root@yoyo jenkins]# wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
--2019-06-30 19:40:15-- http://mirrors.jenkins-ci.org/war/latest/jenkins.war
Resolving mirrors.jenkins-ci.org (mirrors.jenkins-ci.org)... 52.202.51.185
Connecting to mirrors.jenkins-ci.org (mirrors.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.182/jenkins.war [following]
--2019-06-30 19:40:16-- http://mirrors.tuna.tsinghua.edu.cn/jenkins/war/2.182/jenkins.war
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.8.193|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 77565765 (74M) [application/java-archive]
Saving to: ‘jenkins.war’ 100%[=====================================================================================================================>] 77,565,765 12.1MB/s in 5.1s 2019-06-30 19:40:22 (14.4 MB/s) - ‘jenkins.war’ saved [77565765/77565765] [root@yoyo jenkins]# jar -xvf jenkins.war

解压之后的目录

[root@yoyo jenkins]# ll
total 78212
drwxr-xr-x 3 root root 4096 Jun 23 20:22 bootstrap
-rw-r--r-- 1 root root 1946 Feb 7 12:49 ColorFormatter.class
drwxr-xr-x 5 root root 4096 Jun 23 20:22 css
-rw-r--r-- 1 root root 1544 Jun 23 20:18 dc-license.txt
drwxr-xr-x 2 root root 4096 Jun 23 20:22 executable
-rw-r--r-- 1 root root 17542 Jun 23 20:18 favicon.ico
drwxr-xr-x 12 root root 4096 Jun 23 20:22 help
drwxr-xr-x 6 root root 4096 Jun 23 20:22 images
-rw-r--r-- 1 root root 77565765 Jun 24 11:22 jenkins.war
-rw-r--r-- 1 root root 1674 Feb 7 12:49 JNLPMain.class
drwxr-xr-x 2 root root 4096 Jun 23 20:22 jsbundles
-rw-r--r-- 1 root root 862 Feb 7 12:49 LogFileOutputStream$1.class
-rw-r--r-- 1 root root 636 Feb 7 12:49 LogFileOutputStream$2.class
-rw-r--r-- 1 root root 2240 Feb 7 12:49 LogFileOutputStream.class
-rw-r--r-- 1 root root 20730 Feb 7 12:49 Main.class
-rw-r--r-- 1 root root 1048 Feb 7 12:49 MainDialog$1$1.class
-rw-r--r-- 1 root root 1067 Feb 7 12:49 MainDialog$1.class
-rw-r--r-- 1 root root 2633 Feb 7 12:49 MainDialog.class
-rw-r--r-- 1 root root 512 Feb 7 12:49 Main$FileAndDescription.class
drwxr-xr-x 3 root root 4096 Jun 30 19:22 META-INF
-rw-r--r-- 1 root root 71 Jun 23 20:18 robots.txt
drwxr-xr-x 3 root root 4096 Jun 23 20:22 scripts
drwxr-xr-x 7 root root 4096 Jun 23 20:22 WEB-INF
-rw-r--r-- 1 root root 2390099 May 12 15:50 winstone.jar
[root@yoyo jenkins]#

接着重启tomcat容器就可以生效了

docker restart yoyotomcat

访问jenkins

浏览器输入访问地址:http://主机ip:8090/jenkins就能访问到主页面了

方法二:不挂载运行容器

上面是通过挂载tomcat下的webapps目录,在本机上把war包放进去的方式。如果不挂载容器的目录,试了下也是可以把war包放进去的

一个tomca镜像可以启动多个容器实例,可以再启动一个yytomcat的容器实例,映射到主机的8091端口

[root@yoyo jenkins]# docker run --name yytomcat -p 8091:8080 -d tomcat
08af0192b961f1ba1bb1bf1edada968822f3143e5f57c59c396fd3fd948e7529
[root@yoyo jenkins]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
08af0192b961 tomcat "catalina.sh run" 3 hours ago Up 3 hours 0.0.0.0:8091->8080/tcp yytomcat
1d07763a6eaa tomcat "catalina.sh run" 4 hours ago Up 3 hours 0.0.0.0:8090->8080/tcp yoyotomcat
643c1f7c970c mysql:5.7 "docker-entrypoint.s…" 11 hours ago Up 4 hours 33060/tcp, 0.0.0.0:3309->3306/tcp yoyomysql
37a3b50d151c mysql:5.6 "docker-entrypoint.s…" 28 hours ago Up 4 hours 0.0.0.0:3308->3306/tcp mymysql
[root@yoyo jenkins]#

启动完成后在浏览器输入http://主机ip:8091就可以访问到tomcat首页了,接着用docker cp 把本机的war包复制到yytomcat容器里面

接着前面下载jenkins.war并解压到~/yoyo/tomcat/webapps/jenkins/目录步骤

  • docker cp 复制 jenkins整个目录到 容器的/usr/local/tomcat/webapps/jenkins目录
  • docker exec -it yytomcat /bin/bash 进入运行容器的交互环境
  • cd 到tomcat容器的webapps/jenkins目录,查看到已经复制成功
  • exit 退出容器
  • docker restart 重启容器
[root@yoyo ~]# docker cp ~/yoyo/tomcat/webapps/jenkins/ yytomcat:/usr/local/tomcat/webapps/jenkins
[root@yoyo ~]# docker exec -it yytomcat /bin/bash
root@08af0192b961:/usr/local/tomcat# cd webapps/jenkins
root@08af0192b961:/usr/local/tomcat/webapps/jenkins# ls
ColorFormatter.class LogFileOutputStream.class MainDialog$1$1.class bootstrap favicon.ico jsbundles
JNLPMain.class META-INF MainDialog$1.class css help robots.txt
LogFileOutputStream$1.class Main$FileAndDescription.class MainDialog.class dc-license.txt images scripts
LogFileOutputStream$2.class Main.class WEB-INF executable jenkins.war winstone.jar
root@08af0192b961:/usr/local/tomcat/webapps/jenkins#
root@08af0192b961:/usr/local/tomcat/webapps/jenkins# exit
exit
[root@yoyo ~]# docker restart yytomcat
yytomcat
[root@yoyo ~]#

浏览器输入访问地址:http://主机ip:8091/jenkins就能访问到主页面了

python接口QQ群:717225969

docker学习5-docker安装tomcat环境和部署war包的更多相关文章

  1. 以tomcat镜像为基础部署war包后再做成镜像

    #以交互的方式启动本地的镜像tomcat:hps,并且将本地目录/mnt/iso挂在到容器中的/tmp/repositories目录,方便从本地获取一些安装文件并进行一些操作 docker run - ...

  2. Docker学习:Docker安装和基本使用

    Docker Docek是一种容器技术.容器是一种轻量级.可移植.自打包的软件技术,使应用程序可以在几乎任何地方以相同的方式运行. 使用者可以在笔记本上创建并测试好的容器,无需任何修改就能够在生产系统 ...

  3. Docker学习笔记 — Docker私有仓库搭建

    Docker学习笔记 — Docker私有仓库搭建   目录(?)[-] 环境准备 搭建私有仓库 测试 管理仓库中的镜像 查询 删除 Registry V2   和Mavan的管理一样,Dockers ...

  4. Docker容器Tomcat部署war包

    在docker容器中使用tomcat部署war包主要包括四个步骤,创建tomcat容器.上传war包到容器.重启容器.访问应用. 1.创建tomcat容器 使用docker run  -d --nam ...

  5. Docker学习之Docker容器基本使用

    Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式:-d 已存在的容器相关操作 启动:do ...

  6. Docker学习之Docker镜像基本使用

    Docker学习之Docker镜像基本使用 获取镜像 命令格式:docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] 例如: docker pull ...

  7. CentOS下安装Tomcat环境

    一.安装JAVA环境 1.安装JAVA mkdir -p /usr/local/java 下载jdk1.7.0_67.tar.gz包,并解压到 tar xf jdk1.7.0_67.tar.gz -C ...

  8. Linux下安装Tomcat服务器和部署Web应用

    一.上传Tomcat服务器

  9. 转】Linux下安装Tomcat服务器和部署Web应用

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4097608.html 感谢! 一.上传Tomcat服务器

随机推荐

  1. 使用 Nginx 阻止恶意 IP 访问

    找到具有明显特征的访问记录,比如: /Dec/::: +] "-" "Ouija_x.86/2.0" "-" 也许是某个开源框架的漏洞,执行 ...

  2. adb devices命令链接设备失败 解决办法

    使用adb devices命令链接设备失败 1,检查adb的环境配置是否存在问题 参见我的博客(sdk配置):https://www.cnblogs.com/changpuyi/p/9459025.h ...

  3. Gradle之dependenciens的各种依赖说明

    implementation:对于使用了该命令编译的依赖,对该项目有依赖的项目将无法访问到使用该命令编译的依赖中的任何程序,也就是将该依赖隐藏在内部,而不对外部公开.api 完全等同于compile指 ...

  4. PHP对二维数组进行排序

    /** * 获取最近的店铺 * @param $lng * @param $lat * @return array */ protected function getClosestShop($lng, ...

  5. 简述 高性能Linux服务器 模型架构 设计

    主要从三个方面进行分析: 1.事件处理模式 2.并发模式 一.事件处理模式 1.Reactoor模式 定义: 主线程只负责监听文件描述符上是否有事件发生,有的话立即将该事件通知工作线程,除此之外,主线 ...

  6. tomcat启动时报No rules found matching 'Server/Service/Engine/Host/context'

    tomcat是8.0版本. 在eclipse启动时,第二行报这个, 同时项目也没加载(tomcat启动成功了). 网上搜了半天, 试了半天, 没搞定. 最后不经意间发现: <Context do ...

  7. 关闭windows防火墙命令

    windows PowerShell (管理员) 或 CMD (管理员) 查看当前防火墙状态:netsh advfirewall show allprofiles 关闭防火墙:netsh advfir ...

  8. 在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径

    原文:在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 在项目编译成 dll 之前,如何分析项目的所有依赖呢?可以在在项目的 Target 中去收集项目的依赖. ...

  9. .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖

    原文:.NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖 我们有多种工具可以将程序集合并成为一个.打包成一个程序集可以避免分发程序的时候带上一堆依赖而出问题. ILMerge 可以用来 ...

  10. IDEA远程调试Ambari Server

    1.配置端口 Ambari Server默认配置了服务端的debug参数,端口为5005.如果要修改端口,可以在/usr/sbin/ambari_server_main.py文件中对应地方修改,直接改 ...