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

场景

开发环境需要进入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:
    -c, --connections   Connections to keep open
    -d, --duration      Duration of test
    -t, --threads       Number of threads to use

    -s, --script        Load Lua script file
    -H, --header        Add header to request
        --latency          Print latency statistics
        --timeout       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)