系统环境:centos7.7 (VMware中)

  image版本:tomcat:8-jdk8-openjdk (截止2020.01.10该系列版本)

  安装步骤参考文章:https://www.jianshu.com/p/d053573ffab1

  1、docker search tomcat 查看版本总感觉不太直观,可以去官网查找想要的版本 https://hub.docker.com/_/tomcat?tab=tags&page=1 ,然后使用docker pull tomcat:对应版本号 安装,安装最新可以直接使用 docker pull tomcat。

  

  2、docker images 查看已经安装的镜像。

  

  3、启动一个tomcat容器,并命名为 test_tomcat 。

  

  4、查看启动的docker tomcat 容器。在(2020.1.5号以前)浏览器中输入ip:端口号应该是可以访问到tomcat管理页面的,但是最新版本的docker tomcat镜像运行后的容器竟然都不可以,即使最新版本的tomcat:latest也不行,下面我将为大家介绍处理方式。

  

  (2020.01.05以前)的镜像运行tomcat容器后访问应该是下面的页面

  

  但(2020.01.05)后的所有版本tomcat镜像启动容器后访问是下面这样的。

  

  这是为什么呢?下面介绍为什么。

  5、创建linux宿主机文件夹用于存储tomcat容器中复制出来的配置文件。

  

  6、进入docker tomcat查看目录。命令 docker exec -it 容器名字(或容器container id) bash。此处推荐用容器名字(如上面命名的容器名字test_tomcat)方便书写。默认进入容器的 /usr/local/tomcat 文件夹,这里注意几个文件夹后面会用到,一个是conf,一个是webapps。我们进入conf,然后查看里面有哪些文件,注意tomcat-users.xml是我们要复制的。  

    然后我们切换进webapps文件夹,查看里面的文件,竟然是空的!!!里面不应该有manager等文件夹吗??等等,我们看上图,webapps后面怎么多了一个webapps.dist文件夹???以前的版本是没有的!让我们切换进webapps.dist文件夹,查看里面的文件,哇!!!这不是应该在webaspps中的文件吗???(个人猜测:因为docker推荐将webapps下的文件挂载在宿主机下,否则删除tomcat容器的时候服务文件会全部丢失,为了让大家主动将webapps挂载出来,可能维护者将以后的tomcat镜像全部改成webapps为空,需要使用者手动将webapps.dist复制出来并挂载使用)我可能是第一个发现这个版本配置的文章???

  

原文地址:https://www.cnblogs.com/jying/p/12176107.html
作者:一定会去旅行
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

 7、exit退出容器,并复制tomcat容器配置文件(tomcat-users.xml)和整个webapps.dist文件夹到linux 宿主机。用语句 docker cp 容器配置文件路径 linux宿主机存储路径。

  

  8、停止正在运行的tomcat容器,并删除该容器test_tomcat。

  

  9、修改复制出来的文件。tomcat-users.xml配置权限,/webapps/manager/META-INF/context.xml 配置访问地址和端口等。

    编辑tomcat-usrs.xml,底部</tomcat-users>以内添加如下内容,其中授权访问账号为:tomcat,密码为:tomcat.2019

  <role rolename="manager-gui" />
<role rolename="manager-script" />
<role rolename="manager-status" />
<role rolename="manager-jmx" />
<user username="tomcat" password="tomcat.2019" roles="manager-gui,manager-script,manager-status,manager-jmx" />

  

    切进/webapps/manager/META-INF文件夹,编辑里面的context.xml文件,将以下内容注释掉。  

  

<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

  10、重新运行一个tomcat容器,并挂载本地的配置文件到容器对应文件。  

docker run -dit --name my_tomcat_2020 -p 8081:8080 --restart=always -e TZ="Asia/Shanghai" -v /etc/localtime:/etc/localtime:ro -v /www/tomcat/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml -v /www/tomcat/webapps:/usr/local/tomcat/webapps tomcat:8-jdk8-openjdk

参数解析:
-d 后台运行容器,并返回容器ID;
--name 为容器起一个容易区分且容易书写的名字
-p 映射宿主机端口到容器端口,宿主机端口:容器端口
--restart=always 机器重启时自动启动容器
-e       设定一些必须的环境变量。本例子中 -e TZ="Asia/Shanghai" 设定时区为上海,强烈建议国内设定,否则容器内打印的所有日志时间都会差8小时。
-v       挂载宿主机文件到容器。本例三个分别为:
          -v /etc/localtime:/etc/localtime:ro 挂载宿主机时间,保持容器时间正确。
          -v /www/tomcat/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml 挂载宿主机配置文件到容器。
          -v /www/tomcat/webapps:/usr/local/tomcat/webapps 挂载宿主机/webapps到容器。 更多配置参数含义请参考:https://blog.csdn.net/qq_19381989/article/details/102781663

  

  11、重新访问ip:8081,便可以访问页面啦,manager也可以进去~~

    

  12、配置完成~~

  

  

centos7一步一步搭建docker tomcat 及重点讲解的更多相关文章

  1. centos7一步一步搭建docker nginx 及重点讲解

    系统环境:centos7.7 (VMware中) images版本:nginx:latest (截止2020.01.10最新版) 1.拉取镜像 docker pull nginx 2.启动nginx容 ...

  2. 在CentOS7下从0开始搭建docker并发布tomcat项目

    一切从0开始,我也是个小白: 1.检查你的系统是不是高于3.8的内核,如果没有请升级CentOS7或者Ubuntu 14 #uname -a 2.CentOS7下安装docker #yum -y in ...

  3. CentOS7下使用Sonatype Nexus3搭建Docker私有仓库

    相关资料: Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype Sonatype Nexus3 Docker Hub地 ...

  4. 一步一步配置docker(tomcat+jenkins+phpmyadmin+nginx)

    经过半个月的docker学习实践,今天对自己的学习成果做个总结. 貌似官方推荐的是docker compose使用DockerFile 来配置,但目前还没学习使用docker compose,先学习通 ...

  5. 一步一步搭建Jenkins环境

    Jenkins使用经验谈1(一步一步搭建Jenkins环境)在公司使用 Jenkins 软件已经有一段时间了,走了很多弯路,但也积累了一些经验,可以和大家分享一下.我们来一起搭建Jenkins环境.首 ...

  6. 【Linux】一步一步学Linux——Centos7.5安装图解(08)

    00. 目录 参考博客:https://mp.csdn.net/mdeditor/95031775# 01. Centos7.5简介 CentOS(Community Enterprise Opera ...

  7. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

  8. 一步一步了解Cocos2dx 3.0 正式版本开发环境搭建(Win32/Android)

    cocos2d-x 3.0发布有一段时间了,作为一个初学者,我一直觉得cocos2d-x很坑.每个比较大的版本变动,都会有不一样的项目创建方式,每次的跨度都挺大…… 但是凭心而论,3.0RC版本开始 ...

  9. 一步一步教你编写与搭建自动化测试框架——python篇

    [本文出自天外归云的博客园] 这两天用python写了一个自动化测试框架,取名为Auty.准备用来做Web方面的接口测试,以下为Auty框架一步一步的搭建过程——

随机推荐

  1. sql查询——子查询

    -- 子查询 -- 一句查询语句内,再套一句查询语句 ,叫子查询 -- 查询班级类身高最高的人的名字 select name from students where high=(select max( ...

  2. windows好用的cmd命令

    1.如何查看本机ip局域网ip 在cmd中输入ipconfig 2.如何在不重启浏览器的情况下让刚修改的hosts生效, 因为服务器和浏览器都有DNS缓存,在cmd中执行ipconfig /flush ...

  3. 如何查看mac多少位的操作系统?

    1.点击工具栏左上角点击 (苹果Logo)标志,关于本机  -->  更多信息 --> 系统报告  -->(左侧栏中)软件 (有的电脑是没有的例如第一张图) 2. 输入命令 una ...

  4. spring(二):体系结构&核心模块

    Spring框架 帮助管理对象及其依赖关系 提供如通用日志记录.性能统计.安全控制.异常处理等面向切面的能力 帮助管理数据库事务,提供了一套简单的JDBC访问实现,提供与第三方数据访问框架集成(如Hi ...

  5. day14 tar

    04. 系统中如何对文件进行压缩处理 压缩的命令 tar 压缩命令语法: tar zcvf /oldboy/oldboy.tar.gz 指定要压缩的数据文件 z 压缩的方式 为zip c 创建压缩包文 ...

  6. 文件上传plupload组件使用

    这段时间一直在使用文件上传,简要的介绍一下文件上传的组件使用,先上一段代码. var uploader = new plupload.Uploader( { //用来指定上传方式,指定多个上传方式请使 ...

  7. mp

    问题 G: Green Bin 时间限制: 1 Sec  内存限制: 128 MB[提交] [状态] 题目描述 We will call a string obtained by arranging ...

  8. 【网易官方】极客战记(codecombat)攻略-地牢-橱柜里的骷髅

    关卡连接: https://codecombat.163.com/play/level/cupboards-of-kithgard 谁知道什么样的恐怖事情潜伏在 Kithgard 的橱柜里? 简介: ...

  9. 【网易官方】极客战记(codecombat)攻略-地牢-轰轰

    关卡连接: https://codecombat.163.com/play/level/pong-pong 挑战:使用迄今为止学到的所有编程技巧编写最短的解决方案! 简介: 单挑,这是特殊的挑战关卡! ...

  10. 「模板」AC自动机

    目录 说明 普通版本 询问更改版 拓扑优化版本 说明 这篇博客只挂模板,具体分析请膜拜大佬 hyfhaha 大佬. 普通版本 题目传送门 #include<cstdio> #include ...