首页 > 其他分享 >自有Jar包生成Docker镜像

自有Jar包生成Docker镜像

时间:2024-12-06 12:25:15浏览次数:5  
标签:容器 8999 jar Jar 镜像 Docker docker

前言

经常会有些自己写的一些SpringBoot小项目,为了实现一些小的功能/需求,但是部署的时候,不管是生成jar包,还是war包部署到tomcat中,都容易因为需要部署的环境(比如java版本、tomcat版本、端口)等进行相应调整,而且nohup java-jar又显得不是很优雅,虽然可以自己写个start.sh,stop.sh,但始终不够方便和易于管理。那么对于这种小项目,部署到docker中可以很方便的解决这些痛点。

部署过程

生成DockerFile

我们可以通过自己编写Dockerfile来生成镜像。

首先创建dockerFile文件,然后编写文件内容如下

#基于jdk8的镜像
FROM openjdk:8
#复制当前目录名为app.jar的jar包到容器内  (根据你的实际情况调整)
COPY ./app.jar /tmp/app.jar
#暴露容器端口为8999 Docker镜像告知Docker宿主机应用监听了8999端口 (根据你的实际情况调整)
EXPOSE 8999
#容器启动时执行的命令 java -jar
ENTRYPOINT java -jar /tmp/app.jar

以上就是一个最基础最简单的dockerFile文件示例,详细的语法可通过 Docker Dockerfile | 菜鸟教程 学习

生成Docker镜像

将你的dockerFile与jar包上传至服务器同一目录后执行命令

#docker build
# . 表示当前目录 -f 参数指定Dockerfile文件  -t 表示 制作的镜像:tag  
docker build -f ./dockerFile -t mrzhang/mrzhangutil:1.0.0 .

如果你本身没有jdk的镜像,需要等待docker自动拉取,需要些时间

如果已有那生成速度还是挺快的,一两分钟就能完成,执行过程中如果没有报错,基本就生成成功了

接下来我们可以通过docker images 来查看Docker镜像是否正确生成

运行容器

通过命令使用镜像运行容器

#-d 表示后台运行容器 ,-p表示将宿主机的8999端口映射到容器中的8999端口
docker run -d -p 8999:8999 mrzhang/mrzhangutil:1.0.0

然后我们就可以通过docker ps -a 来查看我们的容器了

日志查看

我们可以通过docker logs CONTAINER ID 来查看我们的容器日志,如下图

docker logs 的详细用法,可以通过 Docker logs 命令 | 菜鸟教程 来学习

结尾

本文简单说明了如何将jar包通过docker方式部署的方式,当然这是通过命令的方式进行配置与使用的,你也可以通过各种docker可视化管理工具来实现,会更加便捷且易于管理。

标签:容器,8999,jar,Jar,镜像,Docker,docker
From: https://www.cnblogs.com/MrZhangonEarth/p/18590492

相关文章

  • Docker 进阶指南:常用命令、最佳实践与资源管理
    Docker进阶指南:常用命令、最佳实践与资源管理Docker作为一种轻量级的容器化技术,已经成为现代软件开发和部署不可或缺的工具。本文将为您深入介绍Docker的常用命令、最佳实践以及如何有效管理容器资源,帮助您更好地在Ubuntu22.04或其他类似环境中使用Docker。一、Do......
  • BUUCTF Pwn jarvisoj_level2_x64 题解
    1.下载checksec64位用IDA64打开SHIFT+F12查找字符串找到了binsh函数里面也有system进主函数看看看到了栈溢出漏洞这是64位程序所以构造ROP链时要用rdi传参+用ret栈平衡找到这两个的地址:构造exp:运行得到flag  flag{4b1340f5-06be-4377-9630-fd2c77f016......
  • docker-compose yaml version
    在DockerCompose文件中,version字段是必需的,它告诉DockerCompose工具使用哪个版本的YAML文件格式来解析Compose文件。目前,DockerCompose支持的版本有1, 2, 2.x, 3, 3.x等。其中,3及以上版本支持更多的特性,比如多服务网络 FROMopenjdk:8-jreRUNmkdir/app#复制jar......
  • 技术栈4:Docker入门 & Linux入门指令
    目录1.Linux系统目录结构2.处理目录的常用命令3.Docker概述4.Docker历史5.Docker基本组成6.Docker底层原理7.Docker修改镜像源8.Docker基本命令在学习docker之前我们先要熟悉Linux系统,推荐阅读:Linux笔记(狂神说)-你我不在年少-博客园1.Linux系统目录结构以下是......
  • Ubuntu 24.04.1 LTS 安装docker
    在Ubuntu24.04.1LTS上安装Docker的步骤如下:1.更新系统包sudoaptupdatesudoaptupgrade-y2.安装必要的软件包sudoaptinstall-yapt-transport-httpsca-certificatescurlsoftware-properties-common3.添加Docker官方的GPG密钥curl-fsSLhttps:/......
  • 在 docker 容器中运行 python 程序,报错:"RuntimeError: can't start new thread"
    具体报错信息如下所示:Traceback(mostrecentcalllast):File"/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py",line406,inrun_asgiresult=awaitapp(#type:ignore[func-returns-value]^^^^^^^^^^^^^^^^^^......
  • Docker运行hello-world镜像出现错误
    错误类型:解决方案;配置加速地址:设置registrymirrorsudomkdir-p/etc/dockersudotee/etc/docker/daemon.json<<-'EOF'{"registry-mirrors":["https://do.nark.eu.org","https://dc.j8.work",&qu......
  • docker 安装部署 Prometheus 与grafana
    1.准备环境确保你已经安装了Docker和DockerCompose。如果没有安装,可以参考以下命令:#安装Dockersudoyuminstall-ydockersudosystemctlstartdockersudosystemctlenabledocker#安装DockerComposesudocurl-L"https://github.com/docker/compose/releas......
  • docker常用命令汇总-持续更新中
    容器卷dockervolume用法:dockervolume[command]dockervolumerm[OPTIONS]VOLUME[VOLUME...]#删除数据卷dockervolumecreatefor_tomcat#创建volume数据卷,名称叫for_tomcatdockervolumels#查看当前所有数据卷......
  • Linux: Centos 安装 docker
    解决方案安装需要的软件包yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2安装阿里云镜像yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装dockeryuminstall-ydocker-ce查看版本,查看是否安装成功......