java jar包docker容器步骤详解
在java SpringBoot应用完成时一般需要对java进行部署,采用jar包方式部署方便快捷,越来越成为主流。这篇文章将带你用docker的方式部署jar应用。
本文章转载需要标明来源,违者必究
一、环境准备
1.linux服务器,要求能上外网,能传文件,需要的的几个命令如下(不能上外网也可以,需要自行安装相关的命令)
(1)docker的各种命令
(2)tee命令
2.java 打成的jar包
二、Dockerfile构建
这里我们需要Dockerfile构建自己的有java环境的容器,同时对环境进行相关的设置。
这里我们的目标是尽量实现一处构建,处处运行
FROM centos
MAINTAINER roc
RUN yum -y install java-1.8.0-openjdk.x86_64
# 把docker的logs的调整到和服务器时间相同
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai’ >/etc/timezone
ENV MYPATH /usr/local
WORKDIR $MYPATH
# 给jar包赋予权限(可以不用)
CMD chmod 777 /root/twsa/*.jar
# 用tee命令将产生的目录在输出到控制台的同时输出到文件中
CMD java -jar /root/twsa/*.jar | tee /root/twsa/log.file
注意:这个文件的命名一定要是Dockerfile,不能是其他名称
三、上传文件到服务器
四、执行命令生成docker镜像
# 这里要cd到DockerFile文件所在位置
cd /root/twsa
# 注意myjdk可以换成自己的名字,且不要忘记最后的.
docker build -t myjdk .
当看到 complete! 证明构建完成
验证:执行
docker images
这里我们已经可以看到自己构建的镜像了
五、运行镜像
执行命令
docker run -p 21918:21918 -v /root/twsa:/root/twsa --name twsa_admin myjdk
这里对jar包端口进行映射,对jar包所在文件进行映射(log文件与jar在同一文件夹下,所以映射这个文件夹就可以把jar包和log文件都映射出来),对docker容器进行命名。
验证:
- 查看容器
docker ps
这里我们已经可以看到docker容器已经上线了
如果这里没有可以执行如下命令
docker ps -a
看看列表中是否出现容器,然后执行
docker logs -ft --tail 500 容器名/容器id
查看docker日志
- 查看端口
netstat -anp|grep 端口号
看到端口已经起来了
docker部署即已完成
五、备注
本片是在自学docker和java部署上写完的,可能存在漏洞之处和不完善的地方大家可以提出来。
这里记述一下以前用sh脚本部署的版本,同时强调如下
- 在DockerFile文件执行sh文件时前面必须加上sh前缀,这样不会出现权限问题
Dockerfile
FROM centos
MAINTAINER roc
RUN yum -y install java-1.8.0-openjdk.x86_64
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo ‘Asia/Shanghai’ >/etc/timezone
ENV MYPATH /usr/local
WORKDIR $MYPATH
COPY start.sh /usr/local/sdyy/obdp/sh/start.sh
CMD sh /usr/local/sdyy/obdp/sh/start.sh
start.sh
chmod 777 /usr/local/sdyy/obdp/jar/*.jar
cd /usr/local/sdyy/obdp/jar
java -jar *.jar
这个版本需要的文件多且有些复杂,而且不能导出日志文件,不建议使用,建议使用文章记述的版本。