java jar包docker容器步骤详解

java jar包docker容器步骤详解

  • 一、环境准备
  • 二、Dockerfile构建
  • 三、上传文件到服务器
  • 四、执行命令生成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,不能是其他名称

三、上传文件到服务器

java jar包docker容器步骤详解_第1张图片

四、执行命令生成docker镜像

# 这里要cd到DockerFile文件所在位置
cd /root/twsa
# 注意myjdk可以换成自己的名字,且不要忘记最后的.
docker build -t myjdk .

当看到 complete! 证明构建完成

验证:执行

docker images

java jar包docker容器步骤详解_第2张图片
这里我们已经可以看到自己构建的镜像了

五、运行镜像

执行命令

docker run -p 21918:21918 -v /root/twsa:/root/twsa --name twsa_admin myjdk

这里对jar包端口进行映射,对jar包所在文件进行映射(log文件与jar在同一文件夹下,所以映射这个文件夹就可以把jar包和log文件都映射出来),对docker容器进行命名。

验证:

  1. 查看容器
docker ps

docker ps
这里我们已经可以看到docker容器已经上线了
如果这里没有可以执行如下命令

docker ps -a

看看列表中是否出现容器,然后执行

docker logs -ft --tail 500 容器名/容器id

查看docker日志

  1. 查看端口
netstat -anp|grep 端口号

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

这个版本需要的文件多且有些复杂,而且不能导出日志文件,不建议使用,建议使用文章记述的版本。

你可能感兴趣的:(服务器部署,java,docker)