通过jad/mc/redefine命令,在docker容器中实现动态更新代码的功能:
通过jad/mc/redefine命令,在docker容器中实现动态更新代码的功能:
demos_dockerfile:
from openjdk:8u232-jdk
maintainer czm<chengzhiming06@163.com>
add demo-0.0.1-SNAPSHOT.jar demo.jar
WORKDIR /app
COPY ./demo-0.0.1-SNAPSHOT.jar demo.jar
VOLUME /tmp
EXPOSE 8080
ENTRYPOINT ["java","-jar","demo.jar"]
通过dockerfile构建镜像:docker build -f ./demos_dockerfile -t (镜像名称)demo .
通过镜像构建容器:docker run -di --name (镜像名称)demo -p 8080:8080 (容器名称)demo
查看容器日志:docker logs -f --tail=100 (id或者name名称)a484ddc601e3
进入容器:docker exec -it (id或者name名称)a484ddc601e3 /bin/bash
在容器中使用arthas,5步操作:
一: 拉取jar包并监控:wget https://arthas.aliyun.com/arthas-boot.jar
二: 使用jad命令编译:jad --source-only com.example.demo.arthas.user.TestController > /tmp/TestController.java
--如果遇到执行失败,在确保执行路径没有问题的前提下,可尝试推出arthas,然后重试即可
三: 编辑文件:vim /tmp/TestController.java(注意该执行是在容器中执行,不是在arthas中执行)
--如果遇到无法执行vim命令,解决办法是:
1)从本地windows服务编辑后上传到linux服务器指定位置
2)执行apt-get install vim -y && apt-get update
四: 反编译文件到指定目录:mc /tmp/TestController.java -d /tmp
--如果遇到mc命令执行失败,解决办法是:
1)从本地借助像ideal工具,反编译好之后,上传到linux服务器指定位置,或者按如下操作
1)将{jdk}/lib下的tool.jar文件复制到{jdk}/jre/lib
2)进入jre/bin目录,用java.exe -jar xx分别启动应用和arthas
五: 将修改之后的文件编译到内存中:redefine /tmp/TestController.class
注意:该操作只能在docker容器中运行,无法通过远程浏览器访问,若要实现windows远程访问,有需要后续会继续更新。
通过jad/mc/redefine命令,在docker容器中实现动态更新代码的功能:相关推荐
- linux下通过命令进入docker容器中的mysql
1.进入项目目录,执行命令: xxx这里我用的是容器ID.也可以使用mysql名称.可以使用docker ps查看: docker exec -it xxx bash 2.执行命令 : mysql - ...
- 构建ChatGPT 镜像,并将其部署到 Docker 容器中。
自己构建 ChatGPT 镜像,并将其部署到 Docker 容器中. 下面是一个简单的 ChatGPT 镜像构建示例: 准备工作 在开始构建 ChatGPT 镜像之前,我们需要完成以下准备工作: 安装 ...
- Docker 容器中运行 Docker 命令
Docker 容器中运行 Docker 命令 在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令:通过将宿主机的 D ...
- Docker容器中没有vi/ps等命令
1 背景及原因 Docker中安装容器后,进入容器内,想要执行一些命令,却发现根本没有这个命令. Docker容器都是最小化的Linux,所以有很多命令没有. 2 解决 # 进入容器内 docker ...
- 如何在Docker容器中挂载主机目录
本文翻译自:How to mount a host directory in a Docker container I am trying to mount a host directory into ...
- docker安装_以简便的方式监控Docker容器中的ADF应用程序
docker安装 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机上JD ...
- Docker容器中MySQL最大连接数被限制为214的解决方案
Docker容器中MySQL最大连接数被限制为214的解决方案 原文:Docker容器中MySQL最大连接数被限制为214的解决方案 一.背景 话说笔者在上次的博客里简单的讲了一下调整MySQL最大连 ...
- Docker(三):镜像导入与导出、保存与加载、在Docker容器中安装软件
相关阅读: Docker(一):Docker的安装与常用命令 Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit Docker(三):Docker镜像导入与导 ...
- docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序
docker 容器监控 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机 ...
- 轻松监控Docker容器中的ADF应用程序
在这篇简短的文章中,我将展示一种简单的方法,以确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机上JDK安装的一部分. ...
最新文章
- jar打包命令-指定主类一次搞定!
- 在java中方法重载的要求,Java方法的重载
- 设计模式学习笔记二:简单工厂模式
- 基于C#.NET的高端智能化网络爬虫
- Android媒体解码MediaCodec,MediaExtractor
- 别用Excel做数据可视化了!这款报表工具不比它香100倍?
- java贪吃蛇难度设计_Java贪吃蛇应用的设计与实现
- CF probabilities 自制题单
- 自学Java随时放弃(十二 控制跳转语句 ①break+②continue+③return)
- 别在找提高C++晦涩难懂的知识了。提高效率!这里有C++STL——全面总结详细教程(附案例解析)(持续更新中)
- db2 日期英式写法_英语日期格式
- plc中int数据类型范围_PLC数据类型INT 和WORD的区别点-工业支持中心-西门子中国...
- MATLAB中的一些小技巧(2) - [MATLAB]
- Docker11_2:Docker腾讯云仓库
- PbS包覆钙钛矿量子点;PbS包覆CsPbI3量子点的透射电镜图和高分辨透射电子显微镜图像和光致发光光谱图齐岳生物
- Linux使用aircrack-ng破解WIFI(wpa/wpa2)密码
- C盘与E盘 磁盘目录结构
- [转贴]一个大学生给女朋友的信
- 07年12月大学英语四级考试B卷答案(新东方版)
- Fine Bi数据可视化day01:连接到数据
热门文章
- 不规则数据排序 Python sort sorted
- Java - Certificate has been revoked
- python 图片分别保存至文件夹(深度学习图片数据集处理)
- ubuntu系统下CodeLite与opencv配置
- UVA11584 Partitioning by Palindromes(动态规划)
- Mysql持久性的实现
- react 使用recoil 减少不必要的组件渲染
- 激光振镜误差校正算法C语言,一种基于双线性插值法的激光振镜图形校正算法的制作方法...
- 【金猿人物展】龙盈智达首席数据科学家王彦博:量子科技为AI大数据创新发展注入新动能...
- Unity3D 制作游戏简单“跑马灯”功能