Docker环境安装部署Java应用(含安装Tomcat和JDK)
1.部署思路
两台docker机(centos 7系统),Docker 版本:18.09.6, build 481bc77156
Docker host IP:192.168.102.135
Docker client IP:192.168.102.134
在centos host上部署dokcer,并在docker容器中部署tomcat及jdk、webapp,部署后测试通过,并推入私有仓库。docker client端从私有仓库拉取镜像,运行并查看运行结果。操作示意图如下:
2.安装tomcat
docker pull tomcat
docker run -p 8080:8080 --name mytomcat tomcat:latest # 提取镜像,生成容器,并命名容器为:mytomcat
3.安装jdk
在Oracle 官网下载jdk,通过工具上传到centos 7中,然后拷贝到容器中,命令如下:
docker cp *****.gz mytomcat:/root
拷贝成功后,使用如下命令,进入容器mytomcat:
docker exec -it mytomcat bash
然后用cd ~切换到到root目录下,然后新建目录:/usr/local/java,并将jdk拷贝到此目录下,使用tar命令解压,解压完成后,配置系统路径:
vi ~/.bashrc
如果此时提示vi命令找不到,则需要运行以下命令,安装vi.
apt-get update#安装vi
apt-get install vim
有了次软件后,打开.bashrc文件,并在其中添加如下两行:
export JAVA_HOME=/usr/local/java/jdk1..0_211
export PATH=$JAVA_HOME/bin:$PATH
刷新配置:source ~/.bashrc,并用java -version测试是否安装成功。
3.部署web应用
上传war包,并传入mytomcat容器中。注意,拷贝命令是:docker cp ibweb.war 97430ad8c4ba:/usr/local/tomcat/webapps,而非:docker cp ibweb.war 97430ad8c4ba:/webapps
然后使用命令重启容器,以测试war包发布
docker restart mytomcat
或者命令:
docker stop mytomcat
docker start mytomcat
测试通过后,将此容器建立镜像,所需命令为:
docker commit -a 'clyan' -m 'this is the first version' 3d9cdd799aef mytomcat:v1
#docker commit -m “提交说明文字” -a “作者” 要提交的容器名 提交后的镜像名:提交后的镜像tag名
注意,本命令既可以使用容器id,又可以使用容器名称。
打包成功后,需要打标签(此时如果不打标签为如下格式,则会出错)
docker tag e6d190ad3797 192.168.102.135:/mytomcat
tag语法:[容器ID|容器名称][仓库][标签]
完成后,推入私有库(此时要确保私有库已经运行)
docker push 192.168.102.135:/mytomcat
推入成功后,客户端从私有库中拉取镜像,并转为容器,并运行:
docker pull 192.168.102.135:/mytomcat
docker run -p : --name mytomcat 192.168.102.135:/mytomcat:v1
4.注意事项:
使用命令拉取私有仓库镜像,并安装:
docker pull registry
docker run -d -p : -v /opt/data/registry:/var/lib/registry --name private_registry registry
Docker中配置私有仓库需要在:/etc/docker目录下建立文件daemon.json,内容如下:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries": ["192.168.102.135:5000"]
}
或者根据systemctl status docker来确定docker文件,打开后在ExecStart行添加内容:
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=192.168.221.129:5000
systemctl daemon-reload
systemctl restart docker
常用命令:
docker ps -n #查看容器
docker ps#查看运行容器
docker rm #删除容器
docker rmi #删除镜像
Docker环境安装部署Java应用(含安装Tomcat和JDK)的更多相关文章
- Nginx系列(8)- Nginx安装 | Docker环境下部署
Docker环境下部署Nginx https://www.cnblogs.com/gltou/p/15186971.html
- 基于docker环境,搭建 jetty环境, 部署java项目
前提: 1.Ubuntu 系统. 2.docker环境已经安装好. 实现步骤: 1.上docker hub 下载jetty docker 镜像. 执行命令:$ sudo docker pull jet ...
- Docker 环境下部署 redash
环境: centos7 官网:https://redash.io/help/open-source/dev-guide/docker 一.安装步骤 1.虚拟机安装 安装vmware,并安装centos ...
- 阿里云Ubuntu部署java web(2) - 配置tomcat
系统版本号:Ubuntu12.04 64位 安装: 首先要安装java(測试时使用的版本号是6b27-1.12.6-1ubuntu0.12.04.2).版本号可自行选择,但不同版本号配置方法可能不同. ...
- 使用Maven自动部署Java Web应用到Tomcat服务器
学习如何使用Maven,我推荐一本工具书,<maven the definitive guide>.在这本工具书手中,详细介绍了maven的使用思想,并且提供了从基本到复杂的具体项目应用. ...
- Linux下安装部署Java
Java安装6小部(适合新手) 1.下载软件包 # wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x ...
- Docker使用jenkins部署java项目到远程linux(三)
实现功能:从本地提交代码到gogs上,本地的代码会被检测一遍 如果检测通过才能commit成功 然后可以继续执行push命令 .push后在gogs上使用web钩子自动推送到jenkins触发构建,j ...
- 在Docker环境下部署高可用的Eureka注册中心
Eureka Server的同步遵循着一个非常简单的原则,只要有一条边将节点连接,就可以进行信息传播和同步 由于Eureka Server进行相互注册的方式来实现高可用的部署,所以我们只需要将Eure ...
- mc01_IntelliJ IDEA安装与Java项目创建以及Tomcat配置
IntelliJ IDEA安装与激活 下载地址:http://www.jetbrains.com/idea/ 安装下一步下一步即可,关键是注册激活,该部分分两个步骤: 1. 配置windows hos ...
随机推荐
- MobileNet系列
最近一段时间,重新研读了谷歌的mobilenet系列,对该系列有新的认识. 1.MobileNet V1 这篇论文是谷歌在2017年提出了,专注于移动端或者嵌入式设备中的轻量级CNN网络.该论文最大的 ...
- iptables 设置特定IP访问指定端口
一.添加规则:设置禁止所有IP访问指定端口8075 [root@zabbix_server ~]# iptables -I INPUT -p tcp --dport -j DROP 二.测试telne ...
- Vue自行封装常用组件-弹出框
使用方法: 1.在父组件中引入"box.vue" //import popUpBox from "./box.vue"; 2.在父组件中注册 popUpBo ...
- poj2018 Best Cow Fences[二分答案or凸包优化]
题目. 首先暴力很好搞,但是优化的话就不会了.放弃QWQ. 做法1:二分答案 然后发现平均值是$ave=\frac{sum}{len}$,这种形式似乎可以二分答案?把$len$移到左边. 于是二分$a ...
- HDU6736 2019CCPC秦皇岛赛区 F. Forest Program
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6736思路:dfs+栈 判环 设图中环的大小分别为 c1, c2, ..., ck,不属 ...
- javasctipt之DOM知识点
一:DOM节点 子节点:childNodes 父节点:parentNode offsetPrent 二:元素属性操作 方式一:xxx.style.xxx 方式二:xxx.style["xxx ...
- 使用SpringAOP实现事务(声明式事务管理、零配置)
前言: 声明式事务管理建立在AOP之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务.声明式事务最大的优点就是不需要通过编 ...
- vue cli3 项目配置
[转]https://juejin.im/post/5c63afd56fb9a049b41cf5f4 基于vue-cli3.0快速构建vue项目 本章详细介绍使用vue-cli3.0来搭建项目. 本章 ...
- nginx设置负载均衡
...... why负载均衡,随着企业业务增长和海量请求,给服务端造成海量并发,导致响应不及时需扩容后端服务,前端需要负载均衡,均摊请求,让服务端吞吐请求的能力提升 单点服务方式,一个点挂掉整个服务就 ...
- 【LuoguP4557】[JSOI2018]战争
题目链接 题意 给你两个点集. q次询问 , 每次把其中一个点集往一个方向移动 , 问两个点集的凸包还有没有交. Sol 闵可夫斯基和板子题. 把问题做如下转换: 我们本来两个凸包相交是相当于是对于移 ...