Install Docker ANY Linux Distro
Docker Installer & Verifier
A production-ready bash script that detects whether Docker is already installed and, if not, installs Docker CE + the Docker Compose plugin using the official repository for your Linux distribution.
🇬🇧 English
Features
- Smart detection — if Docker and Compose are already installed and working, the script exits cleanly without touching anything.
- Multi-distro support — Debian, Ubuntu, Raspberry Pi OS, Fedora, RHEL, Rocky, AlmaLinux, CentOS, Arch, Manjaro, openSUSE, SLES, Alpine.
- Real verification at every step — binary presence, daemon reachability, Compose plugin, and a final
hello-worldcontainer run. - Auto-installs missing dependencies (
curl,gnupg,lsb-release, etc.) before touching Docker. - Colored output: orange
[PROC], green[ OK ], red[FAIL], cyan[INFO]. - Idempotent — safe to run multiple times.
- Sudo-aware — works as root or as a regular user with sudo.
- Adds your user to the
dockergroup so you don't needsudo dockerafter logout/login.
Requirements
- A supported Linux distribution (see above).
- Either root access or a user in the
sudogroup. - Internet connection (to reach the Docker repository).
Usage
Download and run:
curl -fsSL -o install-docker.sh https://example.com/install-docker.sh
chmod +x install-docker.sh
./install-docker.sh
Or if you already have it locally:
chmod +x install-docker.sh
./install-docker.sh
What it does, step by step
- Clears the screen and shows a banner.
- Sets up sudo — uses root if already root, otherwise requires sudo.
- Detects OS family via
/etc/os-releaseand picks the right package manager. - Checks if Docker is installed — verifies the binary, the daemon, and the Compose plugin.
- If everything is OK → exits with a green success message. Nothing is installed.
- If only Compose is missing → installs only the Compose plugin.
- If Docker is missing → adds the official Docker repository for your distro, installs
docker-ce,docker-ce-cli,containerd.io,docker-buildx-plugin,docker-compose-plugin, enables and starts the service, runshello-worldas a final sanity check, and adds your user to thedockergroup.
Exit codes
0— success (either already installed or freshly installed).- Any non-zero — a step failed; a red
[FAIL]message explains what.
Troubleshooting
- "permission denied" after install — log out and log back in so the new
dockergroup membership takes effect, or runnewgrp docker. - Behind a proxy — export
HTTP_PROXY/HTTPS_PROXYbefore running the script. - Old Docker from distro repo — uninstall
docker.io/podman-dockerfirst with your package manager, then re-run this script to get the official Docker CE.
🇬🇷 Ελληνικά
Χαρακτηριστικά
- Έξυπνος εντοπισμός — αν το Docker και το Compose είναι ήδη εγκατεστημένα και λειτουργούν, το script τερματίζει καθαρά χωρίς να αγγίξει τίποτα.
- Υποστήριξη πολλών διανομών — Debian, Ubuntu, Raspberry Pi OS, Fedora, RHEL, Rocky, AlmaLinux, CentOS, Arch, Manjaro, openSUSE, SLES, Alpine.
- Πραγματική επαλήθευση σε κάθε βήμα — ύπαρξη binary, προσβασιμότητα daemon, Compose plugin, και τελικό τρέξιμο του
hello-world. - Αυτόματη εγκατάσταση εξαρτήσεων (
curl,gnupg,lsb-releaseκ.λπ.) πριν την εγκατάσταση του Docker. - Έγχρωμη έξοδος: πορτοκαλί
[PROC], πράσινο[ OK ], κόκκινο[FAIL], κυανό[INFO]. - Idempotent — ασφαλές να τρέξει πολλές φορές.
- Υποστηρίζει sudo — λειτουργεί ως root ή ως κανονικός χρήστης με sudo.
- Προσθέτει τον χρήστη σας στην ομάδα
dockerώστε να μη χρειάζεταιsudo dockerμετά από logout/login.
Προϋποθέσεις
- Υποστηριζόμενη διανομή Linux (βλ. παραπάνω).
- Πρόσβαση root ή χρήστης στην ομάδα
sudo. - Σύνδεση στο διαδίκτυο (για πρόσβαση στο αποθετήριο του Docker).
Χρήση
Κατεβάστε και τρέξτε:
curl -fsSL -o install-docker.sh https://example.com/install-docker.sh
chmod +x install-docker.sh
./install-docker.sh
Ή, αν το έχετε ήδη τοπικά:
chmod +x install-docker.sh
./install-docker.sh
Τι κάνει, βήμα προς βήμα
- Καθαρίζει την οθόνη και εμφανίζει banner.
- Ρυθμίζει sudo — χρησιμοποιεί root αν είστε ήδη root, διαφορετικά απαιτεί sudo.
- Εντοπίζει την οικογένεια OS μέσω του
/etc/os-releaseκαι επιλέγει τον κατάλληλο package manager. - Ελέγχει αν είναι εγκατεστημένο το Docker — επαληθεύει binary, daemon, και το Compose plugin.
- Αν όλα είναι εντάξει → τερματίζει με πράσινο μήνυμα επιτυχίας. Δεν εγκαθιστά τίποτα.
- Αν λείπει μόνο το Compose → εγκαθιστά μόνο το Compose plugin.
- Αν λείπει το Docker → προσθέτει το επίσημο αποθετήριο Docker για τη διανομή σας, εγκαθιστά
docker-ce,docker-ce-cli,containerd.io,docker-buildx-plugin,docker-compose-plugin, ενεργοποιεί και ξεκινά την υπηρεσία, τρέχει τοhello-worldως τελικό έλεγχο, και προσθέτει τον χρήστη στην ομάδαdocker.
Κωδικοί εξόδου
0— επιτυχία (είτε ήταν ήδη εγκατεστημένο, είτε εγκαταστάθηκε τώρα).- Οτιδήποτε άλλο — κάποιο βήμα απέτυχε· ένα κόκκινο
[FAIL]μήνυμα εξηγεί τι.
Αντιμετώπιση προβλημάτων
- "permission denied" μετά την εγκατάσταση — κάντε logout/login ώστε να εφαρμοστεί η νέα συμμετοχή στην ομάδα
docker, ή τρέξτεnewgrp docker. - Πίσω από proxy — ορίστε
HTTP_PROXY/HTTPS_PROXYπριν τρέξετε το script. - Παλιό Docker από το αποθετήριο της διανομής — απεγκαταστήστε πρώτα το
docker.io/podman-dockerμε τον package manager σας, και μετά ξανατρέξτε αυτό το script για να πάρετε το επίσημο Docker CE.
License
MIT — use, modify, and redistribute freely.