在linux中使用docker部署java web服务

最近使用docker部署了一下自己的java web项目,期间也踩了一些坑。

第一步,安装docker,过程不详赘述,参考docker教程

第二步,从docker hub拉下一个tomcat的镜像,因为tomcat镜像里都会安装jdk,但是要看好镜像中jdk的版本和tomcat的版本,一般在网站上会有,推荐去网易云镜像中心,不仅有docker hub的官方镜像,也有用户自己做的镜像。
这里使用tomcat最新版,命令在镜像详情的右侧
在这里插入图片描述

docker pull hub.c.163.com/library/tomcat:latest

系统就会自动下载镜像,下载成功后,在linux上执行

docker images

查看本地是否有镜像信息
在这里插入图片描述
创建一个容器,命令格式

docker run -dit -p8080:8080 -v 本地挂载目录:镜像挂载目录  镜像名称:镜像版本 /bin/sh

此处使用命令

docker run -dit -p8080:8080 -v /download/tomcat:/usr/local/tomcat/webapps hub.c.163.com/library/tomcat:latest /bin/sh

在这个tomcat容器中,webapps目录在/usr/local/tomcat/webapps下,本地挂载了/download/tomcat这个文件夹,也就是本地/download/tomcat里的文件可以和容器里进行共享,之后可以把war包放到这个文件夹里。

-p8080:8080是把容器的8080端口和外部的端口建立映射关系,如果本机的8080端口被其他占用,可以选择杀死进程,或者改成p8081:8080,反正这个tomcat容器的端口默认为8080,也就是后面的数字不要改。
使用

docker ps

查询建立起的容器
在这里插入图片描述
复制这个镜像ID,执行

docker exec -it 43a632e04581 /bin/sh

进入容器,如果出现按键盘【上、下、左、右、退格】出现类似

^[[A^H^[[A^[[B^[[D^[[C

输入su,就变成了root用户,把自己项目的war包(不知道如何生成war包的自己查一下)使用xftp这类工具上传到刚才的/download/tomcat目录。

重启tomcat

关闭tomcat

cd /usr/local/tomcat/bin/
./shutdown.sh

开启tomcat

cd /usr/local/tomcat/bin/
./startup.sh

如果在关闭tomcat时遇到错误,那是可能因为tomcat已经关闭了,端口已经关闭了,无法再利用原来的端口重新关闭,这时候只要直接启动tomcat就可以

追踪tomcat日志

tail -f /usr/local/tomcat/logs/catalina.out

如果没有报错,就证明正常启动起来了,要稍微等一下,tomcat启动是要时间的

访问项目地址

http://xx.xx.xx.x:8080/index.jsp

此时就能够正常访问了

如果需要安装mysql,在容器里执行命令

apt-get install mysql-server
apt-get install mysql-client

安装时遇到无法定位这类问题,执行

apt-get update

如果想把这个容器变成镜像,退出容器(ctrl+p,然后ctrl+q,容器变为后台运行)

docker commit 容器ID 自己取的镜像名称:版本
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值