Docker学习笔记_10 docker应用 - 部署TOMCAT服务
选择基镜像
基镜像使用dokcer hub官方提供的tomcat8 alpine当前最新版本,https://hub.docker.com/_/tomcat/
docker pull tomcat:8.5.32-jre8-alpine |
添加SSH支持
# 在宿主机上执行
mkdir -p /root/docker_build/tomcat-ssh
cd /root/docker_build/tomcat-ssh
cp /usr/share/zoneinfo/Asia/Shanghai . vi repositories
#------------------------------------------------------------------------
http://mirrors.aliyun.com/alpine/v3.7/main
http://mirrors.aliyun.com/alpine/v3.7/community
#------------------------------------------------------------------------ vi run.sh
#------------------------------------------------------------------------
#!/bin/bash
/usr/sbin/sshd -D &
exec mysqld
#------------------------------------------------------------------------ vi Dockerfile
#------------------------------------------------------------------------
FROM 10.240.4.159/app/tomcat:8.5.32-alpine
ADD Shanghai /etc/localtime
ADD repositories /etc/apk/repositories
RUN apk --no-cache update
RUN apk --no-cache add openssh
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" \
&& ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N "" \
&& ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" \
&& ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" \
&& sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config \
&& echo 'root:ydgw.cn' | chpasswd
ADD run.sh /root/run.sh
RUN chmod +x /root/run.sh
VOLUME ["/usr/local/tomcat/webapps", "/usr/local/tomcat/conf", "/usr/local/tomcat/logs"]
CMD ["/root/run.sh"]
#------------------------------------------------------------------------ docker build -t 10.240.4.159/app/tomcat:8.5.32-alpine-ssh .
docker push 10.240.4.159/app/tomcat:8.5.32-alpine-ssh # 下面是为了具体项目设置安全的root密码,单独build的一个镜像,方便以后使用(放到新文件夹下)
vi Dockerfile
#------------------------------------------------------------------------
FROM 10.240.4.159/app/tomcat:8.5.32-alpine-ssh
RUN echo 'root:xxxxxxxxxx' | chpasswd
#------------------------------------------------------------------------ docker build -t 10.240.4.159/erpjs/tomcat:8.5.32-alpine-ssh-erpjs .
docker push 10.240.4.159/erpjs/tomcat:8.5.32-alpine-ssh-erpjs
创建VOLUME卷
# 在宿主机上执行
mkdir /docker_mnt/erpjs-tomcat # 下载的apache-tomcat-8.5.32.tar.gz上传到当前/tmp目录
cd /tmp
tar zxvpf apache-tomcat-8.5.32.tar.gz
cd apache-tomcat-8.5.32
cp -rf webapps /docker_mnt/erpjs-tomcat/
cp -rf conf /docker_mnt/erpjs-tomcat/
cp -rf logs /docker_mnt/erpjs-tomcat/
部署TOMCAT服务
- 登陆Rancher(1.6.18),编排工具用的是默认的Cattle
- 应用 - 用户 - 添加应用 - 名称:[ERP-JS] - 创建
- 添加服务 - 在添加服务页面添写配置如下信息 - 创建
名称: tomcat
选择镜像: 10.240.4.159/erpjs/tomcat:8.5.32-alpine-ssh-erpjs
端口映射: 8080:8080/tcp 15922:22/tcp 卷 - 添加卷: /docker_mnt/erpjs-tomcat/webapps:/usr/local/tomcat/webapps
/docker_mnt/erpjs-tomcat/conf:/usr/local/tomcat/conf
/docker_mnt/erpjs-tomcat/logs:/usr/local/tomcat/logs 网络 - 主机名: erpjs 调度 - 在指定主机上运行全部容器: docker159
配置manager-gui
# SSH登陆tomcat容器
vi /usr/local/tomcat/conf/tomcat-users.xml
# 在</tomcat-users> 上面添加
#------------------------------------------------------------------------
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="ydgw.cn18" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
#------------------------------------------------------------------------ # 创建
vi /usr/local/tomcat/conf/Catalina/localhost/manager.xml
#------------------------------------------------------------------------
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
#------------------------------------------------------------------------ # 注释掉原有内容,改成以下内容
vi /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
#------------------------------------------------------------------------
<!--<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>-->
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" />
</Context>
#------------------------------------------------------------------------ # 只修改前两项的话会出现可以访问Serve Status、Manager APP 但是不能访问HostManager
参考
Docker学习笔记_10 docker应用 - 部署TOMCAT服务的更多相关文章
- Docker学习笔记之-通过Xshell连接 CentOS服务
上一节演示如何在虚拟机中安装 CentOS服务,Docker学习笔记之-在虚拟机VM上安装CentOS 7.8 本节主要演示如何通过 Xshell软件链接CentOS服务,本例以虚拟机作为演示,直接在 ...
- Docker学习笔记之向服务器部署应用程序
部署的应用仅仅是简单应用程序,使用的是node管理的web应用,具体我也不是很会,当然也可以配置tomcat服务器.这里主要是学习docker.需要客户机和服务机,其中服务机必须要为Linux操作系统 ...
- Docker学习笔记2: Docker 概述
一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and Run Any App ,AnyWhere" , ...
- DOCKER 学习笔记7 Docker Machine 在阿里云实例化ECS 以及本地Windows 实例化虚拟机实战
前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...
- DOCKER 学习笔记7 Docker Machine 建立虚拟机实战,以及错误总结
前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...
- DOCKER 学习笔记8 Docker Swarm 集群搭建
前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...
- Docker学习笔记之Docker应用于服务化开发
0x00 概述 上一节里我们谈到了小型的独立项目如何使用 Docker Compose 来搭建程序的运行环境,对于由多人或多部门参与的中大型服务化架构的项目,仅由一个 Docker Compose 项 ...
- Docker学习笔记之Docker的数据管理和存储
0x00 概述 数据是应用程序重要的产出,所以很好的管理和存储数据,是对应用程序劳动结果的尊重.特别是在大数据时代,所有的数据都是重要的资产,保护好数据是每个开发者必须掌握的技能.我们知道,在 Doc ...
- Docker学习笔记之Docker 的简历
0x00 概述 在了解虚拟化和容器技术后,我们就更容易理解 Docker 的相关知识了.在这一小节中,我将介绍关于 Docker 的出现和发展,Docker 背后的技术.同时,我们将阐述 Docker ...
随机推荐
- JQuery局部刷新与全页面刷新
局部刷新: 这个方法就多了去了,常见的有以下几种: $.get方法,$.post方法,$.getJson方法,$.ajax方法如下 前两种使用方法基本上一样 $.get(”Default.php”, ...
- mysql慢SQL排查之show processlist和show full processlist
mysql排查线上数据库问题,经常会用到 show processlist和show full processlist这两条命令 processlist命令的输出结果显示了有哪些线程在运行,不仅可以查 ...
- 数据分析-Matplotlib:绘图和可视化
学习路线 简介 简单绘制线形图 plot函数 支持图类型 保存图表 1.简介 Matplotlib是一个强大的Python绘图和数据可视化的工具包.数据可视化也是我们数据分析的最重要的工作之一,可以帮 ...
- oracle 学习(五)pl/sql语言存储过程&包
首先搞清楚俩概念 存储过程(procedure)&程序包(package) 存储过程:数据库对象之一,可以理解为数据库的子程序,在客户端和服务器端可以直接调用它.触发器是与表直接关联的特殊存储 ...
- NGDC|BIGD
生命组学 生命起源经过复杂演化诞生了大量生物体及其基因组. 现今NCBI最大的基因组: 植物:糖松27.6G 动物:墨西哥蝾螈32.4G 大数据能做什么? 大数据时代如同大航海时代一样,需要具有与时代 ...
- Google Guava入门教程
以下资料整理自网络 一.Google Guava入门介绍 引言 Guava 工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [cachi ...
- 12. docker 网络 docker network (docker 网络)
1. 环境准备 编写 Vagrantfile 为 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.require_version "> ...
- 如何把word文档导入到数据库中——java POI
本文方法借鉴于https://www.cnblogs.com/ljysy/p/10574197.html 在经过朋友的指导下,在处理文档的方式上有所不同. 我的数据库使用的是SQL server,这篇 ...
- Matlab高级教程_第四篇:Matlab高级函数_关键词:arrayfun
% 定义一个句柄并用这个句柄求值 h = @sin; h(3) % % 命令窗口返回内容 % h(3) % ans = % 0.1411 %定义一个完整句柄,@参数+表达式的形式,并给句柄传参 h1 ...
- 人工智能必备之Python3.8.1-安装
1_下载Python 2_下载Python 3_下载Python 4_下载Python-选这里下载:Windows x86-64 executable installer 5_安装Python 6.自 ...