当前位置: 代码网 > it编程>编程语言>Java > Docker部署java项目,基于Dockerfile文件构建镜像

Docker部署java项目,基于Dockerfile文件构建镜像

2024年08月02日 Java 我要评论
部署java项目,基于dockerfile构建docker镜像,打包环境,以及进入容器内部dump jvm日志

一、准备docker环境

1、安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
 
2、添加软件源头(阿里源)- 加速
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 
3、更新yum
sudo yum makecache fast
 
4、安装docker
sudo yum install docker-ce
 
5、启动服务  重启restart 停止stop 
systemctl start docker
 
6、查看版本
docker version

启动docker查看版本

二、准备build的java镜像

1、拉取基础镜像 openjdk:8

        jdk8

docker pull openjdk:8

2、创建dockerfile文件

        注意文件名称要一致dockerfile,不然构建镜像会出问题

        以下文件可以在run容器时候包参数传进去,比如jvm相关参数

# 使用 openjdk 8 作为基础镜像
from openjdk:8
# 设置工作目录
workdir /app
# 将宿主机上的 hs-basic.jar 复制到容器内的 /app 目录
copy hs-basic.jar /app/hs-basic.jar
# 暴露应用程序端口
expose 80
# 在容器启动时运行应用程序
env java_opts=""
# 使用 shell 形式的 cmd 命令来执行 java 应用程序
cmd java $java_opts -jar hs-basic.jar

3、构建java镜像

        注意:对应的jar包路径要与上面文件路径一直,最好直接放在和dockerfile一个目录

docker build -t hs-basic:1.0.0 .

      构建完成可以查看对应的镜像

docker images

三、启动容器

1、运行容器

        指定端口、映射日志目录(注意代码日志目录)

        指定jvm参数

docker run -e "java_opts=-xms1024m -xmx1024m -xx:+useg1gc" \
           -p 80:80 \
           -v /mnt/docker/logs:/mnt/hs/log \
           -d \
           --name hs-server1.0.0 \
           hs-basic:1.0.0

       2、查看容器

         启动完成可以通过命令查看容器信息

# 查看启动成功的容器
docker ps

#查看所有容器,包含启动失败的
docker ps -a

   四、容器内部dump jvm日志

        dump jvm日志

1、进入容器内部

 docker exec -it hs-server /bin/bash

查看java进程,然后dump日志

ps -ef | grep java

jmap -dump:live,format=b,file=m.hprof pid

docker环境,直接把该文件移动到映射文件目录,宿主机目录就可以直接看见进行下载了

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com