docker部署Javaweb项目(jdk+tomcat+mysql)
步骤一:在主机下载安装docker,参照Centos7上安装docker
步骤二:下载Linux版本的JDK1.6和Tomcat6.0(其他项目若依赖其他版本的运行环境可选择另外版本下载),通过secureCRT将下载压缩包传递到Linux主机中,
指令如下:put 源文件路径 (put d://uploads/linuxV/apache-tomcat-6.0.37.tar.gz) 该文件将默认传递到Linux主机下的“~”目录下
引申:从Linux主机传递文件到Windows中的指令为 get 源文件的绝对路径 (get /home/sun/Dockerfile)源文件将默认传递到Windows下的“C:\Users\Administrator\Documents”目录下
步骤三:将下载好的JDK和Tomcat传递到Linux后,复制到指定的文件夹(如:/home/sun/),并将其解压,
常用解压指令如下:
tar -xzvf 文件名(解压tar.gz);tar -xvf 文件名(解压tar文件)
注意:若为bin文件,则需赋予解压权限,指令为:chmod u+x 文件名 再进行解压指令:./文件名(解压bin)
解压后查看 /home/sun/ 如下:
步骤四:编写Dockerfile
在当前路径(/home/sun/)下创建文件Dockerfile(touch Dockerfile),vim Dockerfile ,编写具体内容,如下
FROM centos
MAINTAINER 945130012@qq.com #切换镜像目录,进入/usr目录
WORKDIR /usr
#在/usr/下创建jdk目录,用来存放jdk文件
RUN mkdir jdk
#在/usr/下创建tomcat目录,用来存放tomcat
RUN mkdir tomcat #将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下
ADD jdk1.6.0_45 /usr/jdk/
#将宿主机的tomcat目录下的文件拷至镜像的/usr/tomcat目录下
ADD apache-tomcat-6.0.37 /usr/tomcat/ #设置环境变量
ENV JAVA_HOME=/usr/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH #公开端口
EXPOSE 8080
#设置启动命令
ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]
步骤五:编译Dockerfile,指令如下:
docker build -t sbindocker/hello .
注意:考虑到上次docker仓库的镜像命名格式为:docker登录名/镜像名,所以在这里直接按照格式取名,免得后面docker push 出问题
执行结果
[root@VM_0_4_centos sun]# docker build -t sbindocker/v1.1 .
Sending build context to Docker daemon 345.2MB
Step 1/13 : FROM centos
---> 9f38484d220f
Step 2/13 : MAINTAINER 945130012@qq.com
---> Running in 229e0298fae1
Removing intermediate container 229e0298fae1
---> 35f3dfe84efb
Step 3/13 : WORKDIR /usr
Removing intermediate container 93a2a3af2550
---> 4cce0e422b68
Step 4/13 : RUN mkdir jdk
---> Running in 2d9af2651c7b
Removing intermediate container 2d9af2651c7b
---> 8734ad8e6085
Step 5/13 : RUN mkdir tomcat
---> Running in 6cc15095685e
Removing intermediate container 6cc15095685e
---> 9d1afb700a70
Step 6/13 : ADD jdk1.6.0_45 /usr/jdk/
---> 9f82dfde99c0
Step 7/13 : ADD apache-tomcat-6.0.37 /usr/tomcat/
---> 91e803774d96
Step 8/13 : ENV JAVA_HOME=/usr/jdk
---> Running in 164fba051657
Removing intermediate container 164fba051657
---> e4fdbdf1aa3d
Step 9/13 : ENV JRE_HOME=$JAVA_HOME/jre
---> Running in ed24e20cb48c
Removing intermediate container ed24e20cb48c
---> 264978fcda87
Step 10/13 : ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
---> Running in 0705f2deab04
Removing intermediate container 0705f2deab04
---> 6671fe33cdb4
Step 11/13 : ENV PATH=/sbin:$JAVA_HOME/bin:$PATH
---> Running in b4c81dde0f4b
Removing intermediate container b4c81dde0f4b
---> ca4640d5636e
Step 12/13 : EXPOSE 8080
---> Running in ba86dfe44a41
Removing intermediate container ba86dfe44a41
---> 4a18dd932885
Step 13/13 : ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]
---> Running in e82489de63d1
Removing intermediate container e82489de63d1
---> ede60ca4f52c
Successfully built ede60ca4f52c
Successfully tagged sbindocker/v1.1:latest
docker build
步骤六:在eclipse/MyEclipse中打包war包(war包中连接数据需为Linux宿主机的IP:Port),在/home/sun/下创建目录webapps,并将war包传到到该目录下。
步骤七:打包刚才构建好的镜像,并将/home/sun/webapps/businessManager.war 挂载到容器的/usr/tomcat/webapps/businessManager.war中。指令如下:
docker run --name hello -p 8080:8080 -v /home/sun/webapps/businessManager.war:/usr/tomcat/webapps/businessManager -d sbindocker/hello
步骤八:输入docker ps指令、netstat -nultp、docker logs --tail 100 -f hello 指令查看容器状态,端口占用情况和应用运行日志
至此,即完成web项目在docker容器下的部署,在docker中创建好MySQL容器后,即可在浏览器输入Linux主机的IP:8080/businessManager 即可访问项目
注意:除了java文件,任何在docker容器中可以查看到的真实存在的文件内容都可以直接在容器中进行修改(即使是lib下的jar包都行),改完后需要重启容器(docker restart 容器ID/名称)(适用于小范围改动),若整个项目进行了较大的改动,只需将打包好的war包重新拷贝到Linux主机的/home/sun/webapps/下即可,无需重启容器。
docker部署Javaweb项目(jdk+tomcat+mysql)的更多相关文章
- 在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)
之前做项目都是在本地跑,最近遇到需要在在云服务器(阿里云或者腾讯云都可以,差不多)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去之后写一下部署的步骤与过程,一是帮助自己总结记忆, ...
- Docker部署JavaWeb项目实战(转)
摘要:本文主要讲了如何在Ubuntu14.04 64位系统下来创建一个运行Java web应用程序的Docker容器. 一.下载镜像.启动容器 1.下载镜像 先查看镜像 docker images 记 ...
- Docker部署JavaWeb项目实战
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在Ubuntu14.04 64位系统下来创建一个运行Javaweb应用程 ...
- 关于docker部署javaweb应用的问题
我做了两个镜像,一个mysql,一个tomcat.建完mysql容器之后,在建tomcat的时候用--link把他们链接起来了进tomcat的容器里面 /etc/hosts 也发现了mysql的ip但 ...
- Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql)
转载自:Linux系统部署JavaWeb项目(超详细tomcat,nginx,mysql) 我的系统是阿里云的,香港的系统,本人选择的是系统镜像:CentOS 7.3 64位. 具体步骤: 配置Jav ...
- Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...
- Docker实战部署JavaWeb项目-基于SpringBoot
最近在滴滴云上看到服务器很便宜,1核2G,1年只需要68块钱.下面是我基于Docker部署Javaweb服务的过程.目前我见过的最便宜的服务器,阿里云打折的时候都没有这么便宜啊,果断入手.有需要的话可 ...
- docker 部署django项目(nginx + uwsgi +mysql)
最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高.特此写下随笔与小伙伴们分享,希望能对大家有所启发. docker的理论我就不赘 ...
- centos7+tomcat部署JavaWeb项目超详细步骤
我们平时访问的网站大多都是发布在云服务器上的,比如阿里云.腾讯云等.对于新手,尤其是没有接触过linux系统的人而言是比较有困难的,而且至今使用云服务器也是有成本的,很多时候我们可以通过虚拟机自己搭建 ...
随机推荐
- Swoole开启守护进程后如何关闭
查找相应端口号对应的PID(以我的为例,我的是9501端口) netstat -apn | 清除这个进程 启动客户端这时就会报错连不上了,证明服务已关
- npm学习(九)之README.md文件
包括文档(readme.md) npm建议您包含一个readme文件来记录您的包.自述文件必须有文件名readme.md.文件扩展名.md表示该文件是一个标记(markdown)文件.当有人发现您的包 ...
- ES6 环境的搭建
安装babel npm install --g babel-cli 在项目目录下输入 npm init -y 会自动创建package.json文件 babel src/index.js -o dis ...
- python实现建造者模式
python实现建造者模式 前言 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮.方向盘.发送机等各种部件.而对于大多数用户而言,无须知道这些部件的 ...
- kubernets全套笔记
Master/node Master核心组件: API server,Scheduler,Controller-Manager etcd(存储组件) Node核心组件: kubelet(核心组件) ...
- 013-zabbix trapper方式监控
zabbix获取数据时有时会出现超时,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbix. ...
- SpringBoot01——Framework Introduced and Helloworld
1.介绍 SpringBoot主要解决的是在微服务的架构下简化配置(有快速配置).前后端分离.快速开发 优点: l 提供了快速启动入门 l 开箱即用.提供默认配置 l 内嵌容器化web项目 l 没有冗 ...
- Ubuntu 16.04 编译ORB_SLAM2_modified
编译g2o_with_orbslam2 1.修改g2o/types/slam2d/edge_se2_pointxy_bearing.cpp t.setRotation(t.rotation().ang ...
- 移动web开发问题和经验总结
前言 这里大部分是自己遇到过的情况,还有一部分借鉴了同行的文章,如果大家有遇到其它坑,欢迎提出来一起研究. 知识要点 1. Meta标签 1.禁止用户缩放页面,页面强制让文档的宽度与设备的宽度保持1: ...
- cm日志哪里看
root@d001:/home/centos# find / |grep cloudera-scm-agent.log/opt/cm-5.13.0/log/cloudera-scm-agent/clo ...