When using Docker, ESTABLISHED connections don't appear in netstat

前端 未结 2 1735
面向向阳花
面向向阳花 2020-12-31 06:58

I have a docker container running on RHEL 7 with Docker 1.7.0. The program which running in this container listens for TCP connections on port 5000. In my Dockerfile I put t

2条回答
  •  执念已碎
    2020-12-31 07:15

    You may use this snippet to get all the ESTABLISHED for all dockers in one row (if you got nsenter)

    docker inspect --format '{{.State.Pid}} {{printf "%.13s" .ID}} {{.Name}}' \
    $(docker ps --format '{{.ID}}') | while read dockpid dockid dockname
        do
        echo $dockid $dockname
        sudo nsenter -t $dockpid -n netstat -pan | grep ESTABLISHED
    done
    

    note the ESTABLISHED in the grep.

    you can change to the listening connection with netstat -pnl both TCP and UDP

    docker inspect --format '{{.State.Pid}} {{printf "%.13s" .ID}} {{.Name}}' \
    $(docker ps --format '{{.ID}}') | while read dockpid dockid dockname
        do
        echo $dockid $dockname
        sudo nsenter -t $dockpid -n netstat -pnl
    done
    

    or only TCP LISTEN

    docker inspect --format '{{.State.Pid}} {{printf "%.13s" .ID}} {{.Name}}' \
    $(docker ps --format '{{.ID}}') | while read dockpid dockid dockname
        do
        echo $dockid $dockname
        sudo nsenter -t $dockpid -n netstat -pnlt
    done
    

提交回复
热议问题