#!/bin/bash
set -e
echo "=== Updating system ==="
sudo DEBIAN_FRONTEND=noninteractive apt update -y
sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y -o Dpkg::Options::="--force-confold"
echo "=== Installing dependencies ==="
sudo apt-get install -y ca-certificates curl gnupg lsb-release
echo "=== Adding Docker GPG key ==="
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
echo "=== Adding Docker repository ==="
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
echo "=== Installing Docker Engine and Compose ==="
sudo apt-get update -y
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
echo "=== Checking Docker service ==="
if ! systemctl is-active --quiet docker; then
echo "Docker not running — starting it..."
sudo systemctl start docker
else
echo "Docker is already running."
fi
echo "=== Enabling Docker on boot ==="
sudo systemctl enable docker
echo "=== Verifying installation ==="
echo
echo "Docker version:"
docker --version || { echo "❌ Docker not found"; exit 1; }
echo
echo "Docker Compose version:"
docker compose version || { echo "❌ Docker Compose not found"; exit 1; }
echo
echo "=== Running test container ==="
docker run --rm hello-world || { echo "❌ Docker test failed"; exit 1; }
echo
echo "✅ Everything is working properly! Docker and Compose are ready to use."
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|0 👍
/0 👎