Docker自定义Tomcat,实现远程部署项目和管理
Dockfile自定义Tomcat镜像
1. 拷贝官方镜像中的配置文件出来
# 运行官方镜像,为了得到官方配置文件tomcat_user.xml和server.xml docker run -itd --restart=always --name=tomcat8 \ -v tomcat_webapps:/usr/local/tomcat/webapps \ -p 8080:8080 tomcat:8.5.32 # 复制容器中conf/tomcat-user.xml和server.xml到当前目录下 docker container cp tomcat8:/usr/local/tomcat/conf/tomcat-users.xml . docker container cp tomcat8:/usr/local/tomcat/conf/server.xml .
2. 修改配置文件conf/tomcat-user.xml和server.xml,创建manager.xml
<!--修改server.xml,指定编码格式为UTF-8--> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> <!--修改tomcat-users.xml,添加用户和规则--> <role rolename="admin"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-jmx"/> <!--远程部署需要standard和manager-script角色--> <role rolename="standard"/> <role rolename="manager-script"/> <user username="admin" password="admin" roles="admin,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/> <!--远程部署用户--> <user username="tomcat" password="tomcat" roles="standard,manager-script"/> <!--创建manager.xml,输入以下内容,使tomcat可以远程部署。--> <?xml version="1.0" encoding="UTF-8"?> <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>
3. 编写Dockfile
FROM tomcat:8.5.32 MAINTAINER guxiaotu <524343695@qq.com> ADD server.xml /usr/local/tomcat/conf ADD tomcat-users.xml /usr/local/tomcat/conf ADD manager.xml /usr/local/tomcat/conf/Catalina/localhost/manager.xml
# 删除先前的tomcat容器和tomcat镜像 docker rm -f tomcat8 docker rmi tomcat:8.5.32 # 构建自定义的tomcat镜像 docker build -t guxiaotu/tomcat:8.5.32 . # 构建自定义的最新版 docker build -t guxiaotu/tomcat . # 利用自定义的tomcat镜像创建容器,自动建立映射volume卷tomcat_webapps docker run -itd --restart=always --name=tomcat8 \ -v tomcat_webapps:/usr/local/tomcat/webapps \ -p 8080:8080 guxiaotu/tomcat
4. 可以将构建好的镜像发布到自己的仓库中
# 登录自己的dockerhub仓库,输入用户名和密码 docker login # 发布镜像到自己的仓库 docker push guxiaotu/tomcat:8.5.32 docker push guxiaotu/tomcat:latest
5. 使用tomcat7-maven-plugin部署到远程tomcat服务器
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://ip:8080/manager/text</url> <username>tomcat</username> <password>tomcat</password> </configuration> </plugin>
6. 运行maven命令(可以结合Jenkins)
mvn clean package tomcat7:redeploy -Dmaven.test.skip=true
备注:我已经打包好guxiaotu/tomcat镜像在docker hub仓库中,最新版latest为8.5.32。必须使用参数--restart=always,否则有时候容器会挂掉。不过使用了volume卷tomcat_webapps,重新创建时所有项目还是存在的
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
idea使用docker插件
接着上一篇docker开启远程访问后,我们就可以通过idea使用docker插件把项目部署到docker了。 首先我们先在idea安装docker插件: 在setting中安装docker插件 1535529365951.png 1535529477982.png 等待安装完成重启idea 重启完成后,我们打开settings可以看到docker 1535531268677.png 点击"+",添加一个连接。 1535532032854.png 安装上篇配置的docker信息。我们通过tcp的方式连接到centos的docker服务。信息配置好后,idea会自动检测。然后会输出“connection successful”。 然后再工具栏选择docker的窗口,点击运行 1535532259250.png 1535532271985.png 接下来我们在idea上面操作docker 首先新建一个简单的springboot项目 1535532764721.png 我们的目的就是要把该项目放到docker上面跑起来 在src/main下面新建一个docker文件夹,目录下新建一个Doker...
- 下一篇
云存储网关应用场景
简介 阿里云云存储网关是一款帮助客户在现有本地应用程序、基础设施和数据存储与阿里云的存储服务之间实现无缝集成的数据服务。通过可在本地和云上部署的兼容行业标准存储协议的虚拟设备,将现有的存储应用程序和工作负载对接阿里云存储服务,无缝对接阿里云的存储和计算服务。 它主要的应用场景有以下几类。 1. 云端扩容 云存储网关的后端对接的是阿里云的OSS存储服务。OSS有海量,低成本和高达11个9的可靠性。它相对阿里云的EBS和NAS服务可以提供更低的存储成本和更高的容量。对于需要存放海量数据的客户是一个很好的选择。但是它只支持原生的对象接口,传统的应用程序需要进行改造后才能使用。云存储网关提供了NFS/SMB和iSCSI,使得传统应用程序可以像使用文件夹或者块设备一样使用,无需改造现有应用,只需开通和简单配置即可获得海量空间,如图1-1。主要有 本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Red5直播服务器,属于Java语言的直播服务器
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启