通过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容器中实现动态更新代码的功能:相关推荐

  1. linux下通过命令进入docker容器中的mysql

    1.进入项目目录,执行命令: xxx这里我用的是容器ID.也可以使用mysql名称.可以使用docker ps查看: docker exec -it xxx bash 2.执行命令 : mysql - ...

  2. 构建ChatGPT 镜像,并将其部署到 Docker 容器中。

    自己构建 ChatGPT 镜像,并将其部署到 Docker 容器中. 下面是一个简单的 ChatGPT 镜像构建示例: 准备工作 在开始构建 ChatGPT 镜像之前,我们需要完成以下准备工作: 安装 ...

  3. Docker 容器中运行 Docker 命令

    Docker 容器中运行 Docker 命令 在使用 GitLab/Jenkins 等 CI 软件的时候需要使用 Docker 命令来构建镜像,需要在容器中使用 Docker 命令:通过将宿主机的 D ...

  4. Docker容器中没有vi/ps等命令

    1 背景及原因 Docker中安装容器后,进入容器内,想要执行一些命令,却发现根本没有这个命令. Docker容器都是最小化的Linux,所以有很多命令没有. 2 解决 # 进入容器内 docker ...

  5. 如何在Docker容器中挂载主机目录

    本文翻译自:How to mount a host directory in a Docker container I am trying to mount a host directory into ...

  6. docker安装_以简便的方式监控Docker容器中的ADF应用程序

    docker安装 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机上JD ...

  7. Docker容器中MySQL最大连接数被限制为214的解决方案

    Docker容器中MySQL最大连接数被限制为214的解决方案 原文:Docker容器中MySQL最大连接数被限制为214的解决方案 一.背景 话说笔者在上次的博客里简单的讲了一下调整MySQL最大连 ...

  8. Docker(三):镜像导入与导出、保存与加载、在Docker容器中安装软件

    相关阅读: Docker(一):Docker的安装与常用命令 Docker(二):Docker常用命令之镜像的创建:Dockerfile 与 commit Docker(三):Docker镜像导入与导 ...

  9. docker 容器监控_以简便的方式监控Docker容器中的ADF应用程序

    docker 容器监控 在这篇简短的文章中,我将展示一种简单的方法来确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机 ...

  10. 轻松监控Docker容器中的ADF应用程序

    在这篇简短的文章中,我将展示一种简单的方法,以确保在Docker容器中运行的ADF应用程序在内存利用率方面是健康的Java应用程序. 我将使用标准工具JConsole,它是计算机上JDK安装的一部分. ...

最新文章

  1. Android 自定义实现switch开关按钮
  2. pb,json,二进制,xml数据对比
  3. 2019百度之星初赛1
  4. javaweb调用python算法_请教怎么用java远程调用python? 多谢
  5. 新国标电动自行车目录库
  6. Nature、Science、Cell全加入!80家学术机构新冠研究全部免费
  7. vmware虚拟机安装CentOS8提示错误:section %package does not end with %end(可用)
  8. 小Q系列故事——大笨钟
  9. java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
  10. 基于springboot+vue的智慧教室预约系统(前后端分离)
  11. 变分模态分解算法matlab程序,一种基于变分模态分解理论和K最近邻算法的心电信号分类方法与流程...
  12. 【微机原理笔记】第 4 章 - 8086 汇编语言程序设计
  13. 各大主流编程语言比较,运用场景
  14. 用计算机制作母亲贺卡,综合实践——用hotoshop7.0制作母亲节贺卡(教学设计)__陈素琴.doc...
  15. html博客音乐播放器代码大全,一款百度FLASH音乐播放器代码
  16. 点餐系统第一阶段工作总结
  17. 部分网页无法打开/修复上网问题的终极方法
  18. n维随机变量的分布函数和独立性
  19. 麋鹿分布图制作(二)—— 用Python和R在地图上打点
  20. linux中ping命令详解,全面解析Ping命令

热门文章

  1. android app怎么给界面加背景图,想做一个Android app,但是背景不能铺满整个页面,不知道大家是用什么样的图片?...
  2. java小算盘金钱存银行1秒算出每一年的利息及存款,利息一目了然
  3. 4.29 C语言练习(宏定义练习:输入两个整数,求他们相除的余数。用带参的宏来实现,编程序。)
  4. 八皇后问题(回溯问题)
  5. 郑州大学计算机考研944,2020年郑州大学944计算机技术专业基础综合考研复习资料...
  6. 天勤系列的考研复习资料
  7. An error occurred while automatically activating bundle com.android.ide.ecli
  8. outlook左侧栏隐藏_Outlook 2007待办事项栏中没有全天活动
  9. bootstrap登录模板
  10. 【06月24日】预分红股息率最高排名