根据端口获取镜像名称

#!/usr/bin/env bash
# __Author__="liy"
# 根据容器内使用的客户端端口查找对应的镜像是哪个,使用此脚本即可查询。


port="$1"
function check_env(){
        if [ -z "$port" ];then
                echo -e "\033[31mUsage: $0 <port>\033[0m"
                exit 1
        fi
    
        which conntrack &>/dev/null
        if [ $? -ne 0 ];then
                echo -e "\033[31myum install conntrack-tools|apt install conntrack\033[0m"
                exit 2
        fi
}

function get_image(){
        ip=$(conntrack -L |grep "$port"|grep -Po "(?<=src\=)[\d.]+"|sort -t"." -k1,1n -k2,2n -k3,3n -k4,4n |uniq|xargs| tr ' ' '|') > /dev/null
        for id in $(docker ps -q)
        do
                docker inspect $id |grep -P "($ip)" &>/dev/null
                if [ $? -eq 0 ];then
                        echo -e "\033[32mimage:$(docker ps |grep $id |awk '{print $2}')\033[0m"
                fi
        done
}


function main(){
        check_env
        get_image
}

main

posted @ 2022-01-04 16:39  liy36  阅读(106)  评论(0)    收藏  举报