Skip to main content

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

Features

- **

Smart detection**detection — if Docker and Compose are already installed and working, the script exits cleanly without touching anything.
- **Multi-distro support**support — Debian, Ubuntu, Raspberry Pi OS, Fedora, RHEL, Rocky, AlmaLinux, CentOS, Arch, Manjaro, openSUSE, SLES, Alpine.
- **Real verification at every step**step — binary presence, daemon reachability, Compose plugin, and a final `hello-world`world container run.
- **Auto-installs missing dependencies**dependencies (`curl`curl, `gnupg`gnupg, `lsb-release`release, etc.) before touching Docker.
- **Colored output**output: orange `[PROC]`, green `[ OK ]`, red `[FAIL]`, cyan `[INFO]`.
- **Idempotent**Idempotent — safe to run multiple times.
- **Sudo-aware**aware — works as root or as a regular user with sudo.
- **Adds your user to the `docker`docker group**group so you don't need `sudo docker`docker after logout/login.

###

Requirements

-

  • A supported Linux distribution (see above).
    -
  • Either root access or a user in the `sudo`sudo group.
    -
  • Internet connection (to reach the Docker repository).

###

Usage

Download and run:

```bash

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:

```bash

chmod +x install-docker.sh
./install-docker.sh
```

###

What it does, step by step

1.

**Clears the screen**screen and shows a banner.
2. **Sets up sudo**sudo — uses root if already root, otherwise requires sudo.
3. **Detects OS family**family via `/etc/os-release`release and picks the right package manager.
4. **Checks if Docker is installed**installed — verifies the binary, the daemon, and the Compose plugin.
5. If **everything is OK**OK → exits with a green success message. Nothing is installed.
6. If **only Compose is missing**missing → installs only the Compose plugin.
7. If **Docker is missing**missing → adds the official Docker repository for your distro, installs `docker-ce`ce, `docker-ce-cli`cli, `containerd.io`io, `docker-buildx-plugin`plugin, `docker-compose-plugin`plugin, enables and starts the service, runs `hello-world`world as a final sanity check, and adds your user to the `docker`docker group.

###

Exit codes

-

`0`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**install — log out and log back in so the new `docker`docker group membership takes effect, or run `newgrp docker`docker.
- **Behind a proxy**proxy — export `HTTP_PROXY`HTTP_PROXY/`HTTPS_PROXY`HTTPS_PROXY before running the script.
- **Old Docker from distro repo**repo — uninstall `docker.io`io / `podman-docker`docker first 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`world.
- **Αυτόματη εγκατάσταση εξαρτήσεων**εξαρτήσεων (`curl`curl, `gnupg`gnupg, `lsb-release`release κ.λπ.) πριν την εγκατάσταση του Docker.
- **Έγχρωμη έξοδος**έξοδος: πορτοκαλί `[PROC]`, πράσινο `[ OK ]`, κόκκινο `[FAIL]`, κυανό `[INFO]`.
- **Idempotent**Idempotent — ασφαλές να τρέξει πολλές φορές.
- **Υποστηρίζει sudo**sudo — λειτουργεί ως root ή ως κανονικός χρήστης με sudo.
- **Προσθέτει τον χρήστη σας στην ομάδα `docker`**docker ώστε να μη χρειάζεται `sudo docker`docker μετά από logout/login.

###

Προϋποθέσεις

-

  • Υποστηριζόμενη διανομή Linux (βλ. παραπάνω).
    -
  • Πρόσβαση root ή χρήστης στην ομάδα `sudo`sudo.
    -
  • Σύνδεση στο διαδίκτυο (για πρόσβαση στο αποθετήριο του Docker).

###

Χρήση

Κατεβάστε και τρέξτε:

```bash

curl -fsSL -o install-docker.sh https://example.com/install-docker.sh
chmod +x install-docker.sh
./install-docker.sh
```

Ή, αν το έχετε ήδη τοπικά:

```bash

chmod +x install-docker.sh
./install-docker.sh
```

###

Τι κάνει, βήμα προς βήμα

1.

**Καθαρίζει την οθόνη**οθόνη και εμφανίζει banner.
2. **Ρυθμίζει sudo**sudo — χρησιμοποιεί root αν είστε ήδη root, διαφορετικά απαιτεί sudo.
3. **Εντοπίζει την οικογένεια OS**OS μέσω του `/etc/os-release`release και επιλέγει τον κατάλληλο package manager.
4. **Ελέγχει αν είναι εγκατεστημένο το Docker**Docker — επαληθεύει binary, daemon, και το Compose plugin.
5. Αν **όλα είναι εντάξει**εντάξει → τερματίζει με πράσινο μήνυμα επιτυχίας. Δεν εγκαθιστά τίποτα.
6. Αν **λείπει μόνο το Compose**Compose → εγκαθιστά μόνο το Compose plugin.
7. Αν **λείπει το Docker**Docker → προσθέτει το επίσημο αποθετήριο Docker για τη διανομή σας, εγκαθιστά `docker-ce`ce, `docker-ce-cli`cli, `containerd.io`io, `docker-buildx-plugin`plugin, `docker-compose-plugin`plugin, ενεργοποιεί και ξεκινά την υπηρεσία, τρέχει το `hello-world`world ως τελικό έλεγχο, και προσθέτει τον χρήστη στην ομάδα `docker`docker.

###

Κωδικοί εξόδου

-

`0`0 — επιτυχία (είτε ήταν ήδη εγκατεστημένο, είτε εγκαταστάθηκε τώρα).
- Οτιδήποτε άλλο — κάποιο βήμα απέτυχε· ένα κόκκινο `[FAIL]` μήνυμα εξηγεί τι.

###

Αντιμετώπιση προβλημάτων

-

**"permission denied" μετά την εγκατάσταση**εγκατάσταση — κάντε logout/login ώστε να εφαρμοστεί η νέα συμμετοχή στην ομάδα `docker`docker, ή τρέξτε `newgrp docker`docker.
- **Πίσω από proxy**proxy — ορίστε `HTTP_PROXY`HTTP_PROXY/`HTTPS_PROXY`HTTPS_PROXY πριν τρέξετε το script.
- **Παλιό Docker από το αποθετήριο της διανομής**διανομής — απεγκαταστήστε πρώτα το `docker.io`io / `podman-docker`docker με τον package manager σας, και μετά ξανατρέξτε αυτό το script για να πάρετε το επίσημο Docker CE.

---

##


License

MIT — use, modify, and redistribute freely.