全部产品
阿里云办公

在 Docker 环境中安装 ARMS Agent

更新时间:2018-07-20 11:35:01

本文介绍了如何在基于 Tomcat 应用、Jetty 应用和 Springboot 运行环境的 Docker 环境中安装 Arms Agent。

在基于 Tomcat 应用的 Docker 环境中安装 ARMS Agent

  1. 通过编辑 Dockerfile 来集成您已有的镜像。

    当您的 Docker 镜像 {original-docker-image:tag} 中已有 Tomcat 应用时,您可以通过集成该镜像来生成新的子镜像 Dockerfile:

    1. ########################################
    2. ## ###
    3. ## ARMS APM DEMO Docker ###
    4. ## For Tomcat ###
    5. ## withAgent V0.1 ###
    6. ## ###
    7. ########################################
    8. FROM {original-docker-image:tag}
    9. WORKDIR /root/
    10. # 请根据所在地域替换 Agent 的下载地址,详见本文末尾。
    11. RUN wget "http://arms-apm-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
    12. RUN unzip ArmsAgent.zip -d /root/
    13. # 若所有镜像都接入同一个应用,配置此处的 arms_licenseKey 和 arms_appId 即可。
    14. # licenseKey 和 appId 可在所接入应用的应用设置页面上找到。
    15. # 如需将镜像接入其他应用,可在 docker run 中使用 -e 参数指定该应用的 arms_licenseKey 和 arms_appId 参数,以覆盖此处的配置。
    16. ENV arms_licenseKey=XXX
    17. ENV arms_appId=XXX
    18. ENV CATALINA_OPTS '-javaagent:/root/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=$arms_licenseKey -Darms.appId=$arms_appId'

    Note:

    • 请将配置中的 original-docker-image:tag 替换为您自己的镜像地址。
    • 请根据所在地域替换 Agent 的下载地址,详见各地域的 Agent 下载地址
    • 请将 arms_licenseKey 和 arms_appId 的值替换为所接入应用的应用设置页面上的实际值。
  2. 运行 docker build 命令来构建镜像。

    以下命令中的镜像名 arms-agent-tomcat-demo:v0.1 仅为示例,您可以按需更改。

    1. docker build -t arms-agent-tomcat-demo:v0.1 -f /{workspace}/Dockerfile /{workspace}/
  3. 运行 docker run 命令来启动镜像。

    使用原有镜像 {original-docker-image:tag} 的 docker run 启动脚本启动即可。如需将镜像接入其他应用,可在 docker run 中使用 -e 参数指定该应用的 arms_licenseKey 和 arms_appId 参数,以覆盖 Dockerfile 中的配置。

    示例:

    1. docker run -d -e "arms_licenseKey=aokcdqn3ly@03cd8c21942bee9" -e "arms_appId=aokcdqn3ly@87c740b4fd128b8" -p 8081:8080 arms-agent-tomcat-demo:v0.1

在基于 Jetty 应用的 Docker 环境中安装 ARMS Agent

  1. 通过编辑 Dockerfile 来集成您已有的镜像。

    当您的 Docker 镜像 {original-docker-image:tag} 中已有 Jetty 应用时,您可以通过集成该镜像来生成新的子镜像 Dockerfile:

    1. ########################################
    2. ## ###
    3. ## ARMS APM DEMO Docker ###
    4. ## For Jetty ###
    5. ## withAgent V0.1 ###
    6. ## ###
    7. ########################################
    8. FROM {original-docker-image:tag}
    9. WORKDIR /root/
    10. # 请根据所在地域替换 Agent 的下载地址,详见本文末尾。
    11. RUN wget "http://arms-apm-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
    12. RUN unzip ArmsAgent.zip -d /root/
    13. # 若所有镜像都接入同一个应用,配置此处的 arms_licenseKey 和 arms_appId 即可。
    14. # licenseKey 和 appId 可在所接入应用的应用设置页面上找到。
    15. # 如需将镜像接入其他应用,可在 docker run 中使用 -e 参数指定该应用的 arms_licenseKey 和 arms_appId 参数,以覆盖此处的配置。
    16. ENV arms_licenseKey=XXX
    17. ENV arms_appId=XXX
    18. ENV JAVA_OPTIONS '-javaagent:/root/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=$arms_licenseKey -Darms.appId=$arms_appId'

    Note:

    • 请将配置中的 original-docker-image:tag 替换为您自己的镜像地址。
    • 请根据所在地域替换 Agent 的下载地址,详见各地域的 Agent 下载地址
    • 请将 arms_licenseKey 和 arms_appId 的值替换为所接入应用的应用设置页面上的实际值。
  2. 运行 docker build 命令来构建镜像。

    以下命令中的镜像名 arms-agent-jetty-demo:v0.1 仅为示例,您可以按需更改。

    1. docker build -t arms-agent-jetty-demo:v0.1 -f /{workspace}/Dockerfile /{workspace}/
  3. 运行 docker run 命令来启动镜像。

    使用原有镜像 {original-docker-image:tag} 的 docker run 启动脚本启动即可。如需将镜像接入其他应用,可在 docker run 中使用 -e 参数指定该应用的 arms_licenseKey 和 arms_appId 参数,以覆盖 Dockerfile 中的配置。

    示例:

    1. docker run -d -e "arms_licenseKey=aokcdqn3ly@03cd8c21942bee9" -e "arms_appId=aokcdqn3ly@87c740b4fd128b8" -p 8081:8080 arms-agent-jetty-demo:v0.1

在基于 SpringBoot 运行环境的 Docker 环境中安装 ARMS Agent

  1. 修改 Dockerfile 脚本。

    由于 SpringBoot 是以 java -jar XXX.jar 命令直接运行的,所以需要修改您的 Dockerfile,然后重新运行 docker build 命令。

    1. # 若所有镜像都接入同一个应用,配置此处的 arms_licenseKey 和 arms_appId 即可。
    2. # licenseKey 和 appId 可在所接入应用的应用设置页面上找到。
    3. # 如需将镜像接入其他应用,可在 docker run 中使用 -e 参数指定该应用的 arms_licenseKey 和 arms_appId 参数,以覆盖此处的配置。
    4. ENV arms_licenseKey=XXX
    5. ENV arms_appId=XXX
    6. # 请根据所在地域替换 Agent 的下载地址,详见本文末尾。
    7. RUN wget "http://arms-apm-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
    8. RUN unzip ArmsAgent.zip -d /root/
    9. ## 启动 SpringBoot 的 java -jar 命令,加在 -jar 前面。
    10. # 请根据实际情况修改。
    11. RUN java -javaagent:/root/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=$arms_licenseKey -Darms.appId=$arms_appId -jar XXX-springboot.jar
  2. 运行 docker run 命令来启动镜像。

    使用原有镜像 {original-docker-image:tag} 的 docker run 启动脚本启动即可。如需将镜像接入其他应用,可在 docker run 中使用 -e 参数指定该应用的 arms_licenseKey 和 arms_appId 参数,以覆盖 Dockerfile 中的配置。

    示例:

    1. docker run -d -e "arms_licenseKey=aokcdqn3ly@03cd8c21942bee9" -e "arms_appId=aokcdqn3ly@87c740b4fd128b8" -p 8081:8080 arms-agent-springboot-demo:v0.1

各地域的 Agent 下载地址

  1. # 杭州地域
  2. wget "http://arms-apm-hangzhou.oss-cn-hangzhou.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
  3. # 上海地域
  4. wget "http://arms-apm-shanghai.oss-cn-shanghai.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
  5. # 青岛地域
  6. wget "http://arms-apm-qingdao.oss-cn-qingdao.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
  7. # 北京地域
  8. wget "http://arms-apm-beijing.oss-cn-beijing.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
  9. # 深圳地域
  10. wget "http://arms-apm-shenzhen.oss-cn-shenzhen.aliyuncs.com/ArmsAgent.zip" -O ArmsAgent.zip
  11. # 新加坡地域
  12. wget "http://arms-apm-ap-southeast.oss-ap-southeast-1.aliyuncs.com/cloud_ap-southeast-1/ArmsAgent.zip" -O ArmsAgent.zip
  13. # 金融云环境
  14. wget "http://arms-apm-hangzhou.oss-cn-hangzhou.aliyuncs.com/finance/ArmsAgent.zip" -O ArmsAgent.zip`