Files
dockeraise/dockeraise.sh
T

77 lines
2.6 KiB
Bash
Raw Normal View History

2022-05-20 18:31:46 +00:00
#!/bin/bash
2022-08-08 21:16:33 +00:00
export err="\033[1;31m[-]\033[m"
export msg="\033[1;32m[+]\033[m"
export info="\033[0;36m[:]\033[m"
2022-05-20 18:31:46 +00:00
# Make sure the script is run as root
if [[ $EUID -ne 0 ]]; then
2022-08-08 21:16:33 +00:00
echo -e "${err} This script must be run as root." 1>&2
2022-05-20 18:31:46 +00:00
exit 1
fi
2022-08-08 21:16:33 +00:00
# Check if Docker is already installed
if [[ "$(command -v docker)" -ne "" ]]; then
echo -e "${err} Docker is already installed."
exit 1;
fi
2022-05-20 18:31:46 +00:00
# Install dependencies
2022-08-08 21:16:33 +00:00
echo -e "${info} Updating repositories..."
2022-05-21 14:45:18 +00:00
apt-get update &> /dev/null
2022-08-08 21:16:33 +00:00
echo -e "${info} Installing dependencies..."
2022-05-21 14:40:14 +00:00
apt-get install -y \
2022-05-20 18:31:46 +00:00
ca-certificates \
curl \
gnupg \
2022-05-21 14:43:44 +00:00
lsb-release &> /dev/null
2022-05-20 18:31:46 +00:00
# Add GPG key
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
2022-08-08 21:16:33 +00:00
echo -e "${add} Added Docker's GPG key"
2022-05-20 18:31:46 +00:00
# Add repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
2022-05-21 14:45:18 +00:00
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list &> /dev/null
2022-08-08 21:16:33 +00:00
echo -e "${add} Added Docker's stable repository"
2022-05-20 18:31:46 +00:00
# Install Docker
2022-08-08 21:16:33 +00:00
echo -e "${info} Updating repositories..."
2022-05-21 14:45:18 +00:00
apt-get update &> /dev/null
2022-08-08 21:16:33 +00:00
echo -e "${info} Installing Docker. Please wait..."
apt-get install -y docker-ce docker-ce-cli containerd.io &> /dev/null
echo -e "${add} Docker successfully installed:" $(docker --version)
2022-05-20 18:31:46 +00:00
# Install Docker Compose
while true; do
2022-05-21 10:30:21 +00:00
read -p "[?] Do you want to install Docker Compose? [y/n] " yn
2022-05-20 18:31:46 +00:00
case $yn in
2022-08-08 21:16:33 +00:00
[Yy]* ) echo -e "${info} Installing Docker Compose. Please wait...";
2022-05-21 14:43:44 +00:00
apt-get install -y docker-compose &> /dev/null ;
2022-08-08 21:16:33 +00:00
echo -e "${add} Docker Compose successfully installed:" $(docker-compose --version);
2022-05-21 11:25:57 +00:00
break;;
2022-05-21 10:50:16 +00:00
[Nn]* ) break;;
2022-05-21 15:21:14 +00:00
* ) ;;
2022-05-20 18:31:46 +00:00
esac
done
# Create Docker user
while true; do
2022-05-21 15:21:14 +00:00
read -p "[?] Do you want to create a Docker user? [y/n] " yn
2022-05-20 18:31:46 +00:00
case $yn in
2022-05-21 15:21:14 +00:00
[Yy]* ) read -p "Please choose an id for the new user/group: " id;
2022-08-08 21:16:33 +00:00
/usr/sbin/groupadd -g $id dockeruser && /usr/sbin/useradd dockeruser -u $id -g $id -m -s /bin/bash && echo "${add} Docker user created:" && id dockeruser;
2022-05-21 10:50:16 +00:00
break;;
[Nn]* ) break;;
2022-05-21 15:21:14 +00:00
* ) ;;
2022-05-20 18:31:46 +00:00
esac
done
2022-05-21 11:43:46 +00:00
# Enable Docker service at startup
2022-05-21 14:45:18 +00:00
systemctl start docker.service docker.socket containerd && systemctl enable docker.service docker.socket containerd &> /dev/null
2022-08-08 21:16:33 +00:00
echo -e "${msg} Docker service started and enabled."
2022-05-21 14:03:33 +00:00
2022-08-08 21:16:33 +00:00
echo -e "${info} Process completed. Run '\033[0;36msystemctl status docker\033[m' to check Docker's status."