美文网首页
外挂docker工具镜像至某个运行中的container

外挂docker工具镜像至某个运行中的container

作者: 小昔小怪兽 | 来源:发表于2021-01-27 15:44 被阅读0次

    场景

    开发环境需要进入pod内部压测代理的性能(压测工具选择wrk),但是容器内部没有wrk

    方法一:

    通过yum之类安装

    [root@instantbox_managed_f2vl5siwqutrkj89 home]# yum install -y https://github.com/scutse/wrk-rpm/releases/download/4.1.0/wrk-4.1.0-1.el7.centos.x86_64.rpm
    [root@instantbox_managed_f2vl5siwqutrkj89 home]# wrk
    Usage: wrk <options> <url>
      Options:
        -c, --connections <N>  Connections to keep open
        -d, --duration    <T>  Duration of test
        -t, --threads     <N>  Number of threads to use
    
        -s, --script      <S>  Load Lua script file
        -H, --header      <H>  Add header to request
            --latency          Print latency statistics
            --timeout     <T>  Socket/request timeout
        -v, --version          Print version details
    
      Numeric arguments may include a SI unit (1k, 1M, 1G)
      Time arguments may include a time unit (2s, 2m, 2h)
    

    缺点:yum适用于Redhat、CentOS、Suse等平台,我们的镜像不是基于此类型基础镜像打包,需要额外安装yum包管理。

    方法二:

    通过外挂工具镜像 williamyeh/wrk 至container的命名空间

    docker run -ti --pid container:${CONTAINER_ID} --network container:${CONTAINER_ID} --cap-add sys_admin williamyeh/wrk -t 1 -c 1 http://www.baidu.com/ -d 1m
    

    主要使用了
    --pid 参数,使我们新起的工具镜像williamyeh/wrk 加入到特定容器的PID命名
    --network参数,进入特定容器的网络命名空间
    这样就达到了我们在特定pod内进行压测的目的,并且无需额外安装其他命令。

    这种方法适用于其他需要在线调试container的场景,比如gdb、tcpdump之类。

    相关文章

      网友评论

          本文标题:外挂docker工具镜像至某个运行中的container

          本文链接:https://www.haomeiwen.com/subject/dfjazktx.html