Set of scripts to get useful information within docker containers.
Allget_
scripts will print the requested information tostdout
.
Allis_
scripts will return exit code0
if the condition is met, and1
otherwise.
Any unexpected behavior will be printed tostderr
.
If theVERBOSE
environment variable is set totrue
, the scripts will print additional information tostderr
.
Additionally, you can set theDEBUG
environment variable totrue
to print debug information tostderr
.
You can add the scripts to your images like this:
FROM alpineARG DOCKER_SCRIPTS_VERSION=0.2.0ADD https://github.com/felipecrs/docker-scripts.git#v${DOCKER_SCRIPTS_VERSION}:scripts /opt/docker-scripts
And then, you can invoke any script calling it from/opt/docker-scripts
:
❯docker run --rm --cpus 2 my-image /opt/docker-scripts/get_cpus.sh2
In a system with cgroup v2:
❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true alpine shVERBOSE(get_cpus.sh): cgroup v2 detected.VERBOSE(get_cpus.sh): No CPU limits set.VERBOSE(get_cpus.sh): CPUs:16❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true --cpus 2 alpine shVERBOSE(get_cpus.sh): cgroup v2 detected.VERBOSE(get_cpus.sh): CPUs:2❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true --cpus 1.5 alpine shVERBOSE(get_cpus.sh): cgroup v2 detected.VERBOSE(get_cpus.sh): CPUs:1❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true --cpus 0.5 alpine shVERBOSE(get_cpus.sh): cgroup v2 detected.VERBOSE(get_cpus.sh): CPUs:1
Another system with cgroup v1:
❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true alpine shVERBOSE(get_cpus.sh): cgroup v1 detected.VERBOSE(get_cpus.sh): No CPU limits set.VERBOSE(get_cpus.sh): CPUs:8❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true --cpus 2 alpine shVERBOSE(get_cpus.sh): cgroup v1 detected.VERBOSE(get_cpus.sh): CPUs:2❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true --cpus 1.5 alpine shVERBOSE(get_cpus.sh): cgroup v1 detected.VERBOSE(get_cpus.sh): CPUs:1❯cat scripts/get_cpus.sh| docker run --rm -i -e VERBOSE=true --cpus 0.5 alpine shVERBOSE(get_cpus.sh): cgroup v1 detected.VERBOSE(get_cpus.sh): CPUs:1
In a system with cgroup v2:
❯cat scripts/get_memory.sh| docker run --rm -i -e VERBOSE=true alpine shVERBOSE(get_memory.sh): cgroup v2 detected.VERBOSE(get_memory.sh): No memory limits set.VERBOSE(get_memory.sh): Memory (MB):15996❯cat scripts/get_memory.sh| docker run --rm -i -e VERBOSE=true --memory 1g alpine shVERBOSE(get_memory.sh): cgroup v2 detected.VERBOSE(get_memory.sh): Memory (MB):1024
Another system with cgroup v1:
❯cat scripts/get_memory.sh| docker run --rm -i -e VERBOSE=true alpine shVERBOSE(get_memory.sh): cgroup v1 detected.VERBOSE(get_memory.sh): No memory limits set.Memory (MB):32092❯cat scripts/get_memory.sh| docker run --rm -i -e VERBOSE=true --memory 1g alpine shVERBOSE(get_memory.sh): cgroup v1 detected.VERBOSE(get_memory.sh): Memory (MB):1024
❯cat scripts/is_privileged.sh| docker run --rm -i -e VERBOSE=true alpine shVERBOSE(is_privileged.sh): Container is not running in privileged mode.❯echo$?1❯cat scripts/is_privileged.sh| docker run --rm -i -e VERBOSE=true --privileged alpine shVERBOSE(is_privileged.sh): Container is running in privileged mode.❯echo$?0