diff --git a/docker-network.sh b/docker-network.sh new file mode 100644 index 0000000..d9b67fc --- /dev/null +++ b/docker-network.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +set -euo pipefail + +# ------------------------------- +# Prompt user for subnet base +# ------------------------------- + +read -rp "Enter the second octet for your Docker network (e.g., 100 for 10.100.0.0/16): " octet + +# Validate that it's a number between 1 and 254 +if ! [[ "$octet" =~ ^[0-9]{1,3}$ ]] || ((octet < 1 || octet > 254)); then + echo "Invalid input. Must be a number between 1 and 254." + exit 1 +fi + +# ------------------------------- +# Define values +# ------------------------------- + +DOCKER_CONFIG_FILE="/etc/docker/daemon.json" +ADDRESS_POOL_BASE="10.${octet}.0.0/16" +ADDRESS_POOL_SIZE=24 +NETWORK_NAME="bridge_default" +NETWORK_SUBNET="10.${octet}.1.0/24" + +# ------------------------------- +# Replace daemon.json +# ------------------------------- + +echo "Writing Docker daemon.json with base $ADDRESS_POOL_BASE..." + +mkdir -p /etc/docker +cat > "$DOCKER_CONFIG_FILE" </dev/null 2>&1; then + echo "Network '$NETWORK_NAME' exists. Deleting it..." + docker network rm "$NETWORK_NAME" +fi + +echo "Creating network '$NETWORK_NAME' with subnet $NETWORK_SUBNET..." +docker network create \ + --driver=bridge \ + --subnet="$NETWORK_SUBNET" \ + "$NETWORK_NAME" + +echo "✅ Done. You may need to restart Docker to apply default address pool changes:" +echo " sudo systemctl restart docker"