Docs/Docker/installPortainer.sh
2025-03-19 14:01:38 +01:00

41 lines
1.6 KiB
Bash

#!/bin/bash
PRIMARY_NIC=$(ip route | awk '/default/ {print $5}')
IP_ADDRESS=$(ip -4 addr show "$PRIMARY_NIC" | awk '/inet / {print $2}' | cut -d/ -f1)
if ! [ -x "$(command -v docker)" ]; then
read -p "Docker not detected. Do you want to install it?" -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Installing docker"
# https://docs.docker.com/engine/install/ubuntu/
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
else
exit 1
fi
fi
if [ ! "$(docker ps -a -q -f name=portainer)" ]; then
echo "Installing portainer"
if ! (docker volume ls --format "{{.Name}}" | grep -q "^portainer_data$"); then
echo "Create portainer volume"
docker volume create portainer_data
fi
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
fi
echo "You can now access Portainer on https://$IP_ADDRESS:9443"