通过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安装的一部分. ...
最新文章
- Android 自定义实现switch开关按钮
- pb,json,二进制,xml数据对比
- 2019百度之星初赛1
- javaweb调用python算法_请教怎么用java远程调用python? 多谢
- 新国标电动自行车目录库
- Nature、Science、Cell全加入!80家学术机构新冠研究全部免费
- vmware虚拟机安装CentOS8提示错误:section %package does not end with %end(可用)
- 小Q系列故事——大笨钟
- java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
- 基于springboot+vue的智慧教室预约系统(前后端分离)
- 变分模态分解算法matlab程序,一种基于变分模态分解理论和K最近邻算法的心电信号分类方法与流程...
- 【微机原理笔记】第 4 章 - 8086 汇编语言程序设计
- 各大主流编程语言比较,运用场景
- 用计算机制作母亲贺卡,综合实践——用hotoshop7.0制作母亲节贺卡(教学设计)__陈素琴.doc...
- html博客音乐播放器代码大全,一款百度FLASH音乐播放器代码
- 点餐系统第一阶段工作总结
- 部分网页无法打开/修复上网问题的终极方法
- n维随机变量的分布函数和独立性
- 麋鹿分布图制作(二)—— 用Python和R在地图上打点
- linux中ping命令详解,全面解析Ping命令
热门文章
- android app怎么给界面加背景图,想做一个Android app,但是背景不能铺满整个页面,不知道大家是用什么样的图片?...
- java小算盘金钱存银行1秒算出每一年的利息及存款,利息一目了然
- 4.29 C语言练习(宏定义练习:输入两个整数,求他们相除的余数。用带参的宏来实现,编程序。)
- 八皇后问题(回溯问题)
- 郑州大学计算机考研944,2020年郑州大学944计算机技术专业基础综合考研复习资料...
- 天勤系列的考研复习资料
- An error occurred while automatically activating bundle com.android.ide.ecli
- outlook左侧栏隐藏_Outlook 2007待办事项栏中没有全天活动
- bootstrap登录模板
- 【06月24日】预分红股息率最高排名