bknd logo

Install

Install Docker on Linux

This section will cover how to install Docker on a linux operating system. This script assumes that you run the script as a root user.

Install

I swear this is coming soon!


Script

Custom script

Important!

This script only works when running as root user

This script will automatically install Docker on your Linux system.

curl -fsSL cdn.aio.sh/docker.sh | sh

Post installation

Create the docker group:

sudo groupadd docker

Add the user to the Docker group:

sudo usermod -aG docker $USER

Activate the changes:

newgrp docker

Verify if you can use docker:

docker ps

The script:

docker.sh
#!/bin/bash

# Define logging functions
echo_fail() {
  printf "\e[31m✘ \033\e[0m$@\n"
}
echo_pass() {
  printf "\e[32m✔ \033\e[0m$@\n"
}
echo_warn() {
  printf "\e[33m• \033\e[0m$@\n"
}
echo_pause() {
  printf "\e[34m⏸︎ \033\e[0m$1\n"
}
echo_question() {
  if [ "$2" = "" ]; then
    printf "\e[33m? \033\e[0m$@\n"
  else
    printf "\e[33m? \033\e[0m$@"
  fi
}
echo_info() {
  printf "\e[34mℹ \033\e[0m$1\n"
}
echo_point() {
  if [ "$2" = "" ]; then
    printf "\e[34m→ \033\e[0m$1\n"
  else
    printf "\e[34m→ \033\e[0m$1"
  fi
}
echo_bullet() {
  printf "\e[34m• \033\e[0m$1\n"
}
echo_wait() {
  if [ "$2" = "" ]; then
    printf "\e[33m⏲︎ \033\e[0m$1\n"
  else
    printf "\e[33m⏲︎ \033\e[0m$1"
  fi
}

# Update package list
echo_info "Updating package list..."
if sudo apt-get update > /dev/null 2>&1; then
  echo_pass "Package list updated successfully."
else
  echo_fail "Failed to update package list."
  exit 1
fi

# Install required packages
echo_info "Installing required packages (ca-certificates, curl)..."
if sudo apt-get install -y ca-certificates curl > /dev/null 2>&1; then
  echo_pass "Required packages installed successfully."
else
  echo_fail "Failed to install required packages."
  exit 1
fi

# Create directory for APT keyrings
echo_info "Creating directory for APT keyrings..."
if sudo install -m 0755 -d /etc/apt/keyrings > /dev/null 2>&1; then
  echo_pass "Directory created successfully."
else
  echo_fail "Failed to create directory."
  exit 1
fi

# Download Docker's GPG key
echo_info "Downloading Docker's GPG key..."
if sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc > /dev/null 2>&1; then
  echo_pass "Docker's GPG key downloaded successfully."
else
  echo_fail "Failed to download Docker's GPG key."
  exit 1
fi

# Add read permissions for everyone to the GPG key
echo_info "Setting read permissions for the GPG key..."
if chmod a+r /etc/apt/keyrings/docker.asc > /dev/null 2>&1; then
  echo_pass "Read permissions set successfully."
else
  echo_fail "Failed to set read permissions."
  exit 1
fi

# Add Docker's APT repository
echo_info "Adding Docker's APT repository..."
if echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null; then
  echo_pass "Docker's APT repository added successfully."
else
  echo_fail "Failed to add Docker's APT repository."
  exit 1
fi

# Update package list again
echo_info "Updating package list again..."
if sudo apt-get update > /dev/null 2>&1; then
  echo_pass "Package list updated successfully."
else
  echo_fail "Failed to update package list."
  exit 1
fi

# Install Docker packages
echo_info "Installing Docker packages (docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin, docker-compose-plugin)..."
if sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin > /dev/null 2>&1; then
  echo_pass "Docker packages installed successfully."
else
  echo_fail "Failed to install Docker packages."
  exit 1
fi