79 lines
2.0 KiB
Bash
Executable File
79 lines
2.0 KiB
Bash
Executable File
#!/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
|