你未必出类拔萃但一定与众不同

Docker部署Java项目

基于Centos7.6服务器操作

采用打包成镜像的方式部署

1.创建一个文件夹

将jar包类型项目传入

2.创建Dockerfile

在这里插入图片描述

3.对Dockerfile进行编辑
#FROM命令定义构建镜像的基础镜像,该条必须是dockerfile的首个命令
FROM java:8
#用于指定持久化目录
VOLUME /temp
#将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
ADD schoolinfo.jar schoolinfo.jar
#构建镜像时执行的命令
RUN bash -c 'touch /schoolinfo.jar'
#配置容器,使其可执行化。配合CMD可省去"application",只使用参数
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx500m","-Xms500m","/schoolinfo.jar"]
4.开始构建镜像
docker build -t test/schoolinfo .
5.查看docker镜像
docker images
6.使用docker镜像运行容器
docker run -d -p 8081:8081 --name schoolinfo test/schoolinfo
相关操作合集
[root@VM-0-3-centos ~]# cd /root/jarfile
[root@VM-0-3-centos jarfile]# docker build -t test/schoolinfo .
Sending build context to Docker daemon   72.3MB
Step 1/5 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/5 : VOLUME /temp
 ---> Running in 32012e9ed635
Removing intermediate container 32012e9ed635
 ---> fe3f4e1fe03a
Step 3/5 : ADD schoolinfo.jar schoolinfo.jar
 ---> 648fbcf5c901
Step 4/5 : RUN bash -c 'touch /schoolinfo.jar'
 ---> Running in 7d0e8f2c9b06
Removing intermediate container 7d0e8f2c9b06
 ---> 3c35f77022d8
Step 5/5 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx500m","-Xms500m","/schoolinfo.jar"]
 ---> Running in 8b4436b7bbe5
Removing intermediate container 8b4436b7bbe5
 ---> 203ba233c236
Successfully built 203ba233c236
Successfully tagged test/schoolinfo:latest
[root@VM-0-3-centos jarfile]# docker run -d -p 8081:8081 --name schoolinfo test/schoolinfo
fcfa1e65a71cc1603137d512f698cffab6df7c514cb884085af8912ae24024d3
[root@VM-0-3-centos jarfile]# 

采用java -jar运行项目部署

1.将需要部署的jar包项目上传到centos服务器上
2.jar包上传到home下 这里我上传schoolinfo.jar到home下
3.kdvolder/jdk8 是我jdk8 的镜像

没有的自行安装

docker pull kdvolder/jdk8
4.使用docker进行运行
[root@VM-0-3-centos ~]# docker run -d --restart=always  -p 8081:8081 -v /home/schoolinfo.jar:/usr/schoolinfo.jar  --name schoolinfo kdvolder/jdk8  java -jar /usr/schoolinfo.jar
8142c6b16b3986d0887a70e0bab6cdafb4acec01ce9daf5e95a24e6a7cd741c4

注意事项:

项目成功启动后无法访问可能以下两种原因

1.jar包项目中的mysql或者redis或者rabbitmq使用了localhost则无法进行访问,建议使用公网ip

2.服务器可能防火墙已经开启,或者该端口未放通

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐