diff --git a/check_dockercontainer_top b/check_dockercontainer_top
new file mode 100755
index 0000000000000000000000000000000000000000..4dac969ddfdaaea805b56c6d50c10ba6304024c8
--- /dev/null
+++ b/check_dockercontainer_top
@@ -0,0 +1,138 @@
+#!/bin/bash
+# ======================================================================
+#
+# Check DOCKER PROCESSES
+#
+# requirements:
+# - docker
+# - sudo permissions on docker command
+# - jq
+#
+# ----------------------------------------------------------------------
+# Cli docs:
+# https://docs.docker.com/engine/reference/commandline/docker/
+# ----------------------------------------------------------------------
+# 2024-01-26  v1.0  <axel.hahn@unibe.ch>      init
+# ======================================================================
+
+
+. $(dirname $0)/inc_pluginfunctions
+. $(dirname $0)/inc_dockerfunctions.sh
+
+self_APPVERSION=1.0
+
+# ----------------------------------------------------------------------
+# FUNCTIONS
+# ----------------------------------------------------------------------
+
+
+# show help
+function _showHelp(){
+    local _self=$( basename $0 )
+    cat <<EOH
+$( ph.showImlHelpHeader )
+
+Show counts and processes of docker containers.
+
+It returns 
+  CRITICAL if a created container is not running.
+  OK if no container was created yet or all conmtainers are running.
+  UNKNOWM if
+    - docker or jq were not found
+    - docker data were not fetched
+    - docker cannot be connected
+
+This check provides performance data.
+
+USAGE:
+  $_self [OPTIONS]
+
+OPTIONS:
+  -h, --help        this help
+  -d, --debug       Debug; Flag: show all docker system infos
+  -p, --path        Custom directory for docker binary
+  -t, --target      Custom docker target; value for DOCKER_HOST
+                    Needed only if Docker does not run on a unix socket or
+                    multiple users run a rootless docker daemon.
+
+EXAMPLES:
+  $_self
+    Show processes of all containers
+
+  $_self -c
+    Show processes of all containers and a list of container names with its
+    status. Warning: this feature uses docker ps --all and can be slow.
+
+  $_self -e
+    Show processes of all containers. If not all containers are running you
+    get a list of container names with its status.
+
+  $_self -p /usr/bin
+    Show processes of all containers. The docker binary will be searched in
+    given path first - then in all other dirs of \$PATH
+
+  $_self -d
+    Show processes of all containers and json with all docker system infos.
+
+EOH
+}
+
+# ----------------------------------------------------------------------
+# MAIN
+# ----------------------------------------------------------------------
+
+bOptDebug=0
+
+while [[ "$#" -gt 0 ]]; do case $1 in
+    -h|--help)        _showHelp; exit 0;;
+    -d|--debug)       bOptDebug=1; shift;;
+    -p|--path)        if ! grep ":{$2}:" <<< ":{$PATH}:" >/dev/null; then
+                        PATH="$2:$PATH"; 
+                      fi
+                      shift; shift;;
+    -t|--target)      export DOCKER_HOST="$2"; shift; shift;;
+    *) echo "ERROR: Unknown parameter: $1"; showHelp; exit 1;
+esac; done
+
+ph.require "docker"
+ph.require "jq"
+
+_detectDockerenv
+
+# --- fetch data
+
+data=$( sudo -n --preserve-env docker ps --format "{{ json . }}" 2>/dev/null )
+_detectDockererror "$data"
+
+# --- collect data
+
+out=$(
+echo "$data" | while read -r line; do
+    id=$( echo "$line" | jq -r ".ID")
+    name=$( echo "$line" | jq -r ".Names")
+
+    pslist=$( sudo -n --preserve-env docker top "$id" "-o user,pid,pcpu,pmem,command" 2>/dev/null )
+    
+    typeset -i ipLines; ipLines=$( echo "$pslist" | wc -l )-1
+    echo "----------| $ipLines |-- $name (id: $id) ----- "
+    echo "$pslist"
+done
+)
+
+typeset -i iContainers; iContainers=$( echo "$data" | wc -l )
+typeset -i iLines;      iLines=$( echo "$out" | wc -l )
+typeset -i iProcesses;  iProcesses=iLines-iContainers*2
+
+# --- output
+
+ph.perfadd "processes" "$iProcesses" "" ""
+
+ph.status "Docker processes: $iProcesses .. containers: $iContainers"
+echo "$out"
+
+# if -d was given then show debug infos too
+test $bOptDebug -eq 1 && ( echo; echo "DEBUG: full docker system infos as json"; echo "$data" | jq ; _debugInfos)
+
+ph.exit
+
+# ----------------------------------------------------------------------