Compare commits
9 Commits
274387b780
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
afd3b56978 | ||
|
|
cee29d51bb | ||
|
|
f0a305f24f | ||
|
|
2746f535cd | ||
|
|
dfeef853e4 | ||
|
|
5fa9f84e3b | ||
|
|
31eb235ca4 | ||
|
|
f60d9a8754 | ||
|
|
06f1e1f867 |
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2023 | Patrick Asmus | scriptOS
|
||||
Copyright (c) 2025 | Patrick Asmus | scriptOS
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
|
||||
69
README.md
69
README.md
@@ -1,17 +1,70 @@
|
||||
# Docker Installer v3 für Ubuntu-Systeme
|
||||
# 🐳 Docker Installer Script für Ubuntu 22.04 & 24.04
|
||||
|
||||
## Beschreibung
|
||||
Dieses Bash-Skript installiert Docker und Docker-Compose auf einem Ubuntu-System (22.04 oder 24.04), passt bei Bedarf das Docker-Root-Verzeichnis an und kann optional das OhMyZSH-Plugin für Docker aktivieren.
|
||||
|
||||
Das Skript "docker-installer-v3.sh" ermöglicht die Installation von Docker und Docker-Compose auf einem Ubuntu-System. Es richtet auch das Docker-Plugin für Oh My ZSH ein, um Docker-Befehle direkt in der ZSH-Shell verwenden zu können.
|
||||
---
|
||||
|
||||
## Voraussetzungen
|
||||
## ✅ Features
|
||||
|
||||
Stellen Sie sicher, dass Sie über eine Verbindung zum Internet verfügen und dass Sie als Benutzer mit sudo-Berechtigungen angemeldet sind, da das Skript administrative Berechtigungen benötigt, um Docker zu installieren.
|
||||
- Installation von:
|
||||
- Docker Engine (inkl. Repository-Einbindung)
|
||||
- Docker Compose (als Binärdatei, konfigurierbare Version)
|
||||
- Anpassung des Docker-Datenverzeichnisses (`/var/lib/docker`)
|
||||
- Erstellung eines Basisverzeichnisses für Docker-Compose-Projekte
|
||||
- Optionales Aktivieren des `docker`-Plugins in der OhMyZSH-Konfiguration (`/root/.zshrc`)
|
||||
- Kompatibel mit Ubuntu **22.04 Jammy** und **24.04 Noble**
|
||||
|
||||
## Verwendung
|
||||
---
|
||||
|
||||
Führen Sie das Skript mit dem folgenden Befehl in einem Terminal aus:
|
||||
## 🔧 Konfigurierbare Variablen
|
||||
|
||||
Im Skriptkopf kannst du folgende Variablen anpassen:
|
||||
|
||||
| Variable | Beschreibung | Wert |
|
||||
|----------------------|------------------------------------------------------------------------------|------------------------------|
|
||||
| `USER` | Der Benutzer, dem Docker-Rechte zugewiesen werden sollen | `root` |
|
||||
| `COMPOSEVERSION` | Die zu installierende Docker-Compose-Version | `v2.37.1` |
|
||||
| `DOCKER_ROOT_DIR` | Zielverzeichnis für Docker-Daten | `/var/lib/docker` |
|
||||
| `COMPOSE_DIR` | Verzeichnis für zukünftige Compose-Projekte | `/home/docker-projekte` |
|
||||
| `ENABLE_ZSH_PLUGIN` | Aktiviert das OhMyZSH-Plugin für Docker | `true` / `false` |
|
||||
|
||||
---
|
||||
|
||||
## ▶️ Ausführung
|
||||
|
||||
```bash
|
||||
bash ./docker-installer.v3.sh
|
||||
# 1. Skript herunterladen (z. B. mit wget)
|
||||
wget https://git.techniverse.net/scriptos/linux-docker-installer/raw/branch/main/docker-installer-ubuntu.v3.sh
|
||||
|
||||
# 2. Ausführbar machen
|
||||
chmod +x docker-installer-ubuntu.v3.sh
|
||||
|
||||
# 3. Als root oder mit sudo ausführen
|
||||
sudo bash ./docker-installer-ubuntu.v3.sh
|
||||
```
|
||||
|
||||
[](https://asciinema.techniverse.net/a/53)
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Repository
|
||||
|
||||
Mehr unter: [https://www.cleveradmin.de](https://www.cleveradmin.de)
|
||||
Source: [https://git.techniverse.net/scriptos/public-linux-docker-installer](https://git.techniverse.net/scriptos/public-linux-docker-installer)
|
||||
|
||||
---
|
||||
|
||||
## 💬 Support & Community
|
||||
|
||||
Du hast Fragen, brauchst Unterstützung bei der Einrichtung oder möchtest dich einfach mit anderen austauschen, die ähnliche Projekte betreiben? Dann schau gerne in unserer Techniverse Community vorbei:
|
||||
|
||||
👉 **Matrix-Raum:** [#community:techniverse.net](https://matrix.to/#/#community:techniverse.net)
|
||||
Wir freuen uns auf deinen Besuch und helfen dir gerne weiter!
|
||||
|
||||
<p align="center">
|
||||
<img src="https://assets.techniverse.net/f1/git/graphics/gray0-catonline.svg" alt="">
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<img src="https://assets.techniverse.net/f1/logos/small/license.png" alt="License" width="15" height="15"> <a href="./public-linux-docker-installer/src/branch/main/LICENSE">License</a> | <img src="https://assets.techniverse.net/f1/logos/small/matrix2.svg" alt="Matrix" width="15" height="15"> <a href="https://matrix.to/#/#community:techniverse.net">Matrix</a> | <img src="https://assets.techniverse.net/f1/logos/small/mastodon2.svg" alt="Matrix" width="15" height="15"> <a href="https://social.techniverse.net/@donnerwolke">Mastodon</a>
|
||||
</p>
|
||||
@@ -1,56 +1,79 @@
|
||||
#!/bin/bash
|
||||
# Script Name: docker-installer.v3.sh
|
||||
# Beschreibung: Docker & Docker-Compose Installer für "Ubuntu 22.04 Jammy" only
|
||||
# Aufruf: bash ./docker-installer.v3.sh
|
||||
# Beschreibung: Docker & Docker-Compose Installer für Ubuntu 22.04 und Ubuntu 24.04
|
||||
# Autor: Patrick Asmus
|
||||
# Web: https://www.techniverse.net
|
||||
# Web: https://www.cleveradmin.de
|
||||
# Git-Reposit.: https://git.techniverse.net/scriptos/linux-docker-installer
|
||||
# Version: 3.3
|
||||
# Datum: 08.04.2024
|
||||
# Modifikation: Script now checks OS before installation
|
||||
# Version: 3.5
|
||||
# Datum: 13.06.2025
|
||||
# Modifikation: compose version changed, zsh plugin handling optimized, opt-in for enable zsh plugin, cleanup
|
||||
#####################################################
|
||||
|
||||
# Konfiguration
|
||||
USER="root"
|
||||
COMPOSEVERSION="v2.37.1"
|
||||
DOCKER_ROOT_DIR="/var/lib/docker"
|
||||
COMPOSE_DIR="/home/docker-projekte"
|
||||
ENABLE_ZSH_PLUGIN=false
|
||||
|
||||
# Betriebssystem und Version prüfen
|
||||
OS=$(lsb_release -is)
|
||||
VERSION=$(lsb_release -rs)
|
||||
|
||||
if [ "$OS" != "Ubuntu" ] || [ "$VERSION" != "22.04" ]; then
|
||||
echo "Dieses Script ist nur für Ubuntu 22.04 geeignet. Installation abgebrochen."
|
||||
if [ "$OS" != "Ubuntu" ] || { [ "$VERSION" != "22.04" ] && [ "$VERSION" != "24.04" ]; }; then
|
||||
echo "Dieses Script unterstützt nur Ubuntu 22.04 und Ubuntu 24.04. Installation abgebrochen."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Variablen
|
||||
USER="root"
|
||||
DOCKER_ROOT_DIR="/docker"
|
||||
COMPOSE_DIR="/docker-compose"
|
||||
|
||||
# Docker installieren
|
||||
sudo apt update
|
||||
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
|
||||
if [ "$VERSION" == "22.04" ]; then
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
elif [ "$VERSION" == "24.04" ]; then
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
fi
|
||||
|
||||
sudo apt update
|
||||
sudo apt install -y docker-ce docker-ce-cli containerd.io
|
||||
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
# Docker-Root-Verzeichnis ändern & Compose Verzeichnis erstellen
|
||||
sudo systemctl stop docker
|
||||
sudo mkdir -p $DOCKER_ROOT_DIR
|
||||
echo "{\"data-root\": \"$DOCKER_ROOT_DIR\"}" | sudo tee /etc/docker/daemon.json
|
||||
cp /var/lib/docker/* $DOCKER_ROOT_DIR
|
||||
echo "{\"data-root\": \"$DOCKER_ROOT_DIR\"}" | sudo tee /etc/docker/daemon.json > /dev/null
|
||||
cp /var/lib/docker/* $DOCKER_ROOT_DIR -r
|
||||
rm -R /var/lib/docker
|
||||
sudo systemctl start docker
|
||||
|
||||
mkdir $COMPOSE_DIR
|
||||
mkdir -p $COMPOSE_DIR
|
||||
|
||||
# Docker-compose installieren
|
||||
sudo apt install -y curl
|
||||
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
# Docker Compose installieren
|
||||
sudo curl -L "https://github.com/docker/compose/releases/download/$COMPOSEVERSION/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
sudo chmod +x /usr/local/bin/docker-compose
|
||||
|
||||
# Optional: Plugin für Oh my ZSH aktivieren
|
||||
echo "OhMyZSH Plugin für Docker hinzufügen"
|
||||
sudo sed -i 's/plugins=(git)/plugins=(git docker)/g' /root/.zshrc
|
||||
# Optional: OhMyZSH Plugin für Docker aktivieren
|
||||
if [ "$ENABLE_ZSH_PLUGIN" = true ]; then
|
||||
ZSHRC="/root/.zshrc"
|
||||
echo "OhMyZSH Plugin für Docker prüfen..."
|
||||
|
||||
if grep -q "^plugins=" "$ZSHRC"; then
|
||||
if grep -q "docker" "$ZSHRC"; then
|
||||
echo "Docker ist bereits als Plugin eingetragen – keine Änderung nötig."
|
||||
else
|
||||
echo "Docker wird als Plugin hinzugefügt..."
|
||||
sudo sed -i '/^plugins=/ s/)/ docker)/' "$ZSHRC"
|
||||
fi
|
||||
else
|
||||
echo "WARNUNG: Keine Plugin-Zeile gefunden in $ZSHRC."
|
||||
fi
|
||||
else
|
||||
echo "OhMyZSH Plugin-Konfiguration übersprungen (deaktiviert)."
|
||||
fi
|
||||
|
||||
# Überprüfen der Installation
|
||||
docker --version
|
||||
|
||||
Reference in New Issue
Block a user