Skip to content

Commit 4cf416c

Browse files
authored
Add Docker installation script for Ubuntu (#3)
This script installs Docker on Ubuntu, ensuring prerequisites are met and the user is added to the Docker group.
1 parent 1cd7d3e commit 4cf416c

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#!/usr/bin/env bash
2+
3+
set -euo pipefail
4+
5+
echo "=== Docker installation script ==="
6+
7+
# Ensure script is not run as root (recommended)
8+
if [[ "$EUID" -eq 0 ]]; then
9+
echo "===XXX===> Do not run this script as root. Run as a normal user."
10+
exit 1
11+
fi
12+
13+
# Remove old Docker versions if present (ignore errors)
14+
echo "===> Removing old Docker packages (if any)..."
15+
sudo apt-get remove -y docker docker-engine docker.io containerd runc || true
16+
17+
# Update package index
18+
echo "===> Updating package index..."
19+
sudo apt-get update -y
20+
21+
# Install prerequisites
22+
echo "===> Installing prerequisites..."
23+
sudo apt-get install -y \
24+
ca-certificates \
25+
curl \
26+
gnupg \
27+
lsb-release
28+
29+
# Add Docker's official GPG key
30+
echo "===> Adding Docker GPG key..."
31+
sudo install -m 0755 -d /etc/apt/keyrings
32+
if [[ ! -f /etc/apt/keyrings/docker.gpg ]]; then
33+
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
34+
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
35+
sudo chmod a+r /etc/apt/keyrings/docker.gpg
36+
fi
37+
38+
# Add Docker repository
39+
echo "===> Adding Docker APT repository..."
40+
echo \
41+
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
42+
https://download.docker.com/linux/ubuntu \
43+
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
44+
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
45+
46+
# Update package index again
47+
sudo apt-get update -y
48+
49+
# Install Docker Engine
50+
echo "===> Installing Docker Engine..."
51+
sudo apt-get install -y \
52+
docker-ce \
53+
docker-ce-cli \
54+
containerd.io \
55+
docker-buildx-plugin \
56+
docker-compose-plugin
57+
58+
# Enable and start Docker
59+
echo "===> Enabling Docker service..."
60+
sudo systemctl enable docker
61+
sudo systemctl start docker
62+
63+
# Add user to docker group (do not fail script if already added)
64+
echo "===> Adding user '$USER' to docker group..."
65+
sudo usermod -aG docker "$USER" || true
66+
67+
sudo chown $USER /var/run/docker.sock
68+
69+
# Verify installation
70+
echo "===> Verifying Docker installation..."
71+
docker --version
72+
docker compose version
73+
74+
echo
75+
echo " ===> Docker installed successfully."
76+
echo " !!! ===> Log out and log back in for docker group changes to take effect."

0 commit comments

Comments
 (0)