#!/usr/bin/env bash ##makedesc: Docker + ppa # https://docs.docker.com/engine/install/ubuntu/ # https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user set -eo pipefail doRemove() { sudo apt purge -y docker* podman-docker containerd runc } install_() { echo echo "===============================================" echo "Installing Docker" echo "===============================================" echo doRemove sudo apt install -y ca-certificates lsb-release source /etc/os-release codename="$VERSION_CODENAME" key="/etc/apt/keyrings/docker.asc" arch=$(dpkg --print-architecture) sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" -o "$key" sudo chmod a+r $key echo "deb [arch=$arch signed-by=$key] https://download.docker.com/linux/ubuntu $codename stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin sudo usermod -aG docker "$(whoami)" newgrp docker echo echo "Finish! $(docker --version)" echo "Probably, you need to relogin to apply 'docker' group permanently." echo } upgrade() { echo echo "===============================================" echo "Upgrading Docker" echo "===============================================" echo sudo apt upgrade -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin echo echo "Finish!" echo } remove() { echo echo "===============================================" echo "Removing Docker" echo "===============================================" echo doRemove echo echo "Finish!" echo } case "$1" in u|upgrade|update) upgrade ;; r|remove|d|delete|p|purge) remove ;; *) install ;; esac