diff options
| author | Anton Bobov <anton@bobov.name> | 2024-03-05 22:18:49 +0500 |
|---|---|---|
| committer | Anton Bobov <anton@bobov.name> | 2024-03-05 22:25:05 +0500 |
| commit | e2917305c959106ab01018b4c768505fb2f655ac (patch) | |
| tree | 55079dff911c81a5f9dbb84f3e584353a74c28ad /docker-netshoot | |
| parent | c1c648cabb419a0f281e32685287ca1e07e9271f (diff) | |
Updates
Diffstat (limited to 'docker-netshoot')
| -rwxr-xr-x | docker-netshoot | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/docker-netshoot b/docker-netshoot new file mode 100755 index 0000000..8b77e7f --- /dev/null +++ b/docker-netshoot @@ -0,0 +1,52 @@ +#!/bin/bash + +set -euo pipefail + +NETSHOOT_IMAGE="nicolaka/netshoot" + +usage() { + echo "Run netshoot container with docker network." + echo "Options:" + printf "\t%s\t\t%s\n" "-h" "print this help" + printf "\t%s\t%s\n" "-n NETWORK" "user provided network" + printf "\t%s\t\t%s\n" "-N" "user default network" +} + +select_network() { + docker network ls | fzf \ + --header-lines=1 \ + --select-1 --exit-0 \ + --preview-label="Containers" \ + --preview-window=down,10 \ + --preview "docker network inspect {1} | jq -r '.[].Containers | .[].Name'" | awk '{print $1}' +} + +main() { + local network= + while getopts "hNn:" opt; do + case "${opt}" in + h) + usage + exit + ;; + N) + network="default" + ;; + n) + network="$OPTARG" + ;; + *) + usage + exit 1 + ;; + esac + done + shift $((OPTIND - 1)) + + if [ -z "$network" ]; then + network=$(select_network) + fi + docker run --interactive --tty --rm --network "$network" "$NETSHOOT_IMAGE" +} + +main "$@" |
