Skip to content

Instantly share code, notes, and snippets.

@andrew-ma
Last active October 25, 2022 05:08
Show Gist options
  • Save andrew-ma/c2047c892f2ef499793f5d990a9480a0 to your computer and use it in GitHub Desktop.
Save andrew-ma/c2047c892f2ef499793f5d990a9480a0 to your computer and use it in GitHub Desktop.
Install Docker on Debian, Ubuntu, or Kali
sudo apt remove docker docker-engine docker.io containerd runc -y
sudo apt update -y
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg --yes
DEBIAN_VERSION="$(lsb_release -cs)"
if [ $? -ne 0 ]; then DEBIAN_VERSION=$(cat /etc/os-release | grep VERSION_CODENAME | cut -d"=" -f2 | tr -d '"'); fi
if [ "$DEBIAN_VERSION" = "kali-rolling" ]; then DEBIAN_VERSION="buster"; fi
RELEASE_ID=$(cat /etc/os-release | grep '^ID=' | cut -d'=' -f2)
if [ ! "$RELEASE_ID" = 'ubuntu' ]; then RELEASE_ID='debian'; fi
ARCHITECTURE=$(dpkg --print-architecture)
echo "deb [arch=$ARCHITECTURE signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/$RELEASE_ID $DEBIAN_VERSION stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update -y
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo groupadd docker
sudo usermod -aG docker "$USER"
newgrp docker
DEBIAN_VERSION="$(lsb_release -cs)"
if [ $? -ne 0 ]; then DEBIAN_VERSION=$(cat /etc/os-release | grep VERSION_CODENAME | cut -d"=" -f2 | tr -d '"'); fi
if [ "$DEBIAN_VERSION" = "kali-rolling" ]; then DEBIAN_VERSION="buster"; fi
ALL_DOCKER_DEB_FILES=$(wget -q -O- "https://download.docker.com/linux/debian/dists/$DEBIAN_VERSION/pool/stable/amd64/" | grep '["].*[.]deb["]' -o | tr -d '"')
DOCKER_DEB_PREFIXES=("docker-ce[_]" "docker-ce-cli" "containerd")
LATEST_DOCKER_DEB_FILES=($(for p in "${DOCKER_DEB_PREFIXES[@]}"; do echo "$ALL_DOCKER_DEB_FILES" | grep "$p" | sort -r | head -n1; done))
DOCKER_DEB_URL_PREFIX="https://download.docker.com/linux/debian/dists/$DEBIAN_VERSION/pool/stable/amd64"
for filename in "${LATEST_DOCKER_DEB_FILES[@]}"; do URL="$DOCKER_DEB_URL_PREFIX/$filename"; echo "Downloading \"$URL\""; wget -q -O "$filename" "$URL"; done
for filename in "${LATEST_DOCKER_DEB_FILES[@]}"; do echo "Installing \"$filename\""; sudo dpkg -i "$filename" > /dev/null; done
sudo apt-get install docker-compose-plugin -y
docker compose
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment