自己编译带arthas工具的jdk8镜像

本文介绍了如何在Ubuntu系统上下载并使用Docker构建两个镜像,一个是基础的JDK8镜像,另一个是包含Arthas工具的JDK8镜像。详细步骤包括下载安装包、编写Dockerfile,以及使用`dockerbuild`命令编译镜像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 下载jdk8安装包

2. 编写基于ubantu的jdk8的Dockfile

注:编译该基础镜像的机器需要能联网
与带arthas版本分离,方便用户按需选择对应tag的jdk镜像。

安装包和Dockerfile放在同级目录
.
├── Dockerfile
├── jdk-8u11-linux-x64.tar.gz
# 使用官方的Ubuntu作为基础镜像
FROM ubuntu:latest

# 更新软件包列表,以便于arthas安装
RUN apt-get update && apt-get install -y unzip curl telnet

# 指定工作目录
WORKDIR /usr/local

# 将本地的jdk安装包复制到容器的/usr/local目录下
COPY jdk-8u11-linux-x64.tar.gz /usr/local

# 解压jdk安装包
RUN tar -zxvf jdk-8u11-linux-x64.tar.gz && \
    rm jdk-8u11-linux-x64.tar.gz && \
    mv jdk1.8.0_11 java8

# 设置环境变量
ENV JAVA_HOME /usr/local/java8
ENV PATH $PATH:$JAVA_HOME/bin

镜像tag:jdk8:ubantu

3. 使用docker build编译该镜像

4. 下载arthas全量离线包

5. 编写带arthas的jdk8镜像

安装包和Dockerfile放在同级目录
.
├── Dockerfile
├── arthas-packaging-3.7.2-bin.zip

Dockerfile如下:

FROM jdk8:ubantu
# 设置工作目录
WORKDIR /opt

# 拷贝Arthas安装包到镜像中
COPY arthas-packaging-3.7.2-bin.zip .
##
# 解压Arthas安装包
RUN unzip arthas-packaging-3.7.2-bin.zip   && \
    rm arthas-packaging-3.7.2-bin.zip

# 进入Arthas解压后的目录并执行安装脚本
RUN ./install-local.sh

# 设置环境变量,使得Arthas可以通过环境变量访问
ENV PATH="/opt/arthas-3.7.2:$PATH"

镜像tag:jdk8:arthas

6. 具体java应用基于jdk8:arthas打包镜像

7. 进入容器执行 ./as.sh 即可启动arthas

arthas官网

### Windows 下 Arthas 使用教程 #### 工具简介 Arthas 是阿里巴巴开源的一款强大的 Java 线上诊断工具,适用于 JDK 6 及以上版本,并兼容多种操作系统,包括 Linux、Mac 和 Windows。它通过命令行交互模式提供了一系列功能,帮助开发者快速定位和解决运行时问题[^1]。 #### 安装与启动 在 Windows 环境下安装并使用 Arthas 的步骤如下: 1. **下载 Arthas 启动器** 使用 `curl` 命令或者浏览器手动下载 Arthas 启动 JAR 文件: ```bash curl -O https://arthas.aliyun.com/arthas-boot.jar ``` 2. **启动 Arthas** 运行以下命令以启动 Arthas 并附加到指定的目标 JVM 进程: ```bash java -jar arthas-boot.jar ``` 此时会列出当前系统中所有的 Java 进程供选择。输入对应的进程编号即可完成连接[^2]。 3. **处理权限问题** 如果遇到无法 attach 到目标进程的情况,可能是因为权限不足。可以通过以下方式解决: ```bash sudo su admin && java -jar arthas-boot.jar ``` 或者: ```bash sudo -u admin -EH java -jar arthas-boot.jar ``` 若仍存在问题,可查阅日志文件以获取更多信息:`~/logs/arthas/`[^5]。 4. **加速下载(可选)** 对于网络较慢的环境,可以切换至阿里云镜像源: ```bash java -jar arthas-boot.jar --repo-mirror aliyun --use-http ``` #### 功能介绍 以下是 Arthas 提供的一些常用功能及其用途: 1. **dashboard**: 实时监控系统的性能指标,展示 CPU、内存、线程等状态信息。 ```bash dashboard ``` 2. **jad**: 反编译 `.class` 文件以便查看其原始代码结构。 ```bash jad com.example.MyClass ``` 3. **thread**: 分析线程的状态以及死锁情况。 ```bash thread -n 10 ``` 4. **watch**: 跟踪方法调用过程中的入参和返回值。 ```bash watch com.example.MyService handleRequest "{params, returnObj}" true ``` 当不再需要继续操作时,可通过执行 `stop` 指令安全退出所有客户端连接。需要注意的是,在关闭服务前已增强的类会被自动重置,而重新定义的内容则需手动清理[^4]。 --- ### 注意事项 - 确保执行该程序的用户拥有足够的权限访问目标进程。 - 如遇异常状况,请及时检查日志记录路径下的相关内容用于排查原因。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值