docker(二十九)docker-compose部署arthas

116 阅读2分钟

Docker 插件部署继续,这里部署arthas。

 

老规矩,先放一下官网:

arthas.aliyun.com/doc/install…

 

有同学可能会奇怪,为啥要使用docker-compose来部署arthas呢?arthas就是一个jar包,下载直接使用java –jar 运行即可。

 

但是呢,我的Springboot项目有点多,我就不折腾arthas了。我这里使用的是:Arthas Tunnel

文档地址:

arthas.aliyun.com/doc/tunnel.…

 

通过 Arthas Tunnel Server/Client 来远程管理/连接多个 Agent。

 

这里主要记录docker-conmpose部署Arthas Tunnel。

 

一:下载jar包

下载地址:github.com/alibaba/art…

1.png

 

二:创建Dockerfile

# FROM openjdk:11.0.15-slim-buster
FROM openjdk:11-jre
WORKDIR /app/
COPY arthas-tunnel-server-3.7.3-fatjar.jar /app/app.jar
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && mkdir /app/data && mkdir /app/logs
 
# 注意命令中的$PARAMS docker-compose使用需要替换成用户自己的参数PARAMS
CMD ["sh","-c","java -jar -server $JAVA_OPTS /app/app.jar $PARAMS"]

 

重要的部分都有注释,参考即可。

 

三:将Dockerfile打包成镜像,并上传到阿里云的容器镜像仓库

1:登录阿里云镜像仓库

docker login --username=805795955@qq.com registry.cn-zhangjiakou.aliyuncs.com

 

2:创建镜像(registry.cn-zhangjiakou.aliyuncs.com/camellias/arthas-tunnel-server:v3.7.3:这是镜像名称)

docker build -t registry.cn-zhangjiakou.aliyuncs.com/camellias/arthas-tunnel-server:v3.7.3 .

 

3:将镜像上传至阿里云镜像仓库

docker push registry.cn-zhangjiakou.aliyuncs.com/camellias/arthas-tunnel-server:v3.7.3

 

四:使用docker-compose.yml部署arthas-tunnel

1:docker-compose.yml:

version: '3'
services:
  arthas-tunnel-server:
    environment:
      # 开放管理页面有风险!管理页面没有安全拦截功能,务必自行增加安全措施(这个参数在Dockerfile中设置的)
      PARAMS'--arthas.enable-detail-pages=true --spring.cache.type=redis --arthas.embedded-redis.enabled=true --spring.redis.host=1.15.157.156 --spring.redis.port=6379 --spring.redis.password=xxxxx '
    volumes:
      - /opt/docker/arthas/:/data/ # 持久化存储数据
    restart: always
    # image: registry.cn-shanghai.aliyuncs.com/wanfei/arthas-tunnel-server:v1
    image: registry.cn-zhangjiakou.aliyuncs.com/camellias/arthas-tunnel-server:v3.7.3
    # image: alibaba/arthas-tunnel-server:latest
    container_name: arthas-tunnel-server
    ports:
      - 9080:8080
      - 7777:7777

注意docker-compose.yml中的注释。

 

为了避免占用8080端口,修改为9080

arthas.enable-detail-pages=true:开发管理页面,默认是false,不开放访问 http://127.0.0.1:9080/apps.html 获取不到所有连接应用

 

运行容器:

docker compose up -d

 

如果你修改了docker-compose.yml对应的参数之后,使用如下命令即可重启而不用删除已存在的容器:

docker compose up --force-recreate -d

 

2:PARAMS中相关的参数

下载源码包,下载地址:github.com/alibaba/art…

2.png

下载完成之后解压,找到如下图所示的配置文件:application.properties

3.png

application.properties:

# arthas tunnel server host
arthas.server.host=0.0.0.0
# arthas tunnel server port
arthas.server.port=7777
 
# for all endpoints
management.endpoints.web.exposure.include=*
 
# default user name
spring.security.user.name=arthas
 
# If set to true, be sure to do security protection to ensure that the server will not be illegally accessed
arthas.enable-detail-pages=false
 
spring.cache.type=caffeine
spring.cache.cache-names=inMemoryClusterCache
spring.cache.caffeine.spec=maximumSize=3000,expireAfterAccess=3600s
 
#arthas.embedded-redis.enabled=true
#arthas.embedded-redis.settings=maxmemory 128M
#spring.redis.host=127.0.0.1

 

从这个配置文件中我们就可以找到对应的配置了。

 

最后 ,浏览器访问:

http://127.0.0.1:9080

如下图所示:

4.png

最后:开放管理页面有风险!管理页面没有安全拦截功能,务必自行增加安全措施!

以上大概就是docker-compose部署arthas的全过程。

 

有好的建议,请在下方输入你的评论。