Docker installieren
Docker installieren
[Bearbeiten]Diese Anleitung beschreibt die Installation von Docker Engine auf einem neuen Ubuntu-LTS-Server für `megbes-internal`. Sie basiert auf der offiziellen Docker-Dokumentation.
Voraussetzungen
[Bearbeiten]- unterstützte 64-Bit-Ubuntu-LTS-Version
- Benutzerkonto mit `sudo`-Berechtigung
- funktionierende Internet- und DNS-Verbindung
- zuvor vollständig aktualisiertes System gemäß Ubuntu aktualisieren
Achtung bei bestehenden Servern: Nicht ungeprüft Docker-Pakete entfernen oder neu installieren. Auf einem bereits produktiv eingesetzten System zunächst Container, Images, Volumes und Installationsquelle erfassen.
1. Prüfen, ob Docker bereits installiert ist
[Bearbeiten]docker --version
Zusätzlich:
systemctl status docker --no-pager
Wenn eine Docker-Version angezeigt wird und der Dienst läuft, nicht einfach erneut installieren. Stattdessen vorhandene Installation und Projektzustand dokumentieren.
2. Systemarchitektur und Ubuntu-Version prüfen
[Bearbeiten]dpkg --print-architecture cat /etc/os-release
Für die üblichen internen Server wird normalerweise `amd64` angezeigt. Bei Raspberry Pi kann `arm64` erscheinen.
3. Voraussetzungen installieren
[Bearbeiten]sudo apt update sudo apt install ca-certificates curl
Die Installation mit `Y` beziehungsweise `J` bestätigen, falls APT nachfragt.
4. Verzeichnis für Paket-Schlüssel anlegen
[Bearbeiten]sudo install -m 0755 -d /etc/apt/keyrings
Der Befehl legt das Verzeichnis an und setzt passende Leserechte.
5. Offiziellen Docker-Schlüssel laden
[Bearbeiten]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
Prüfen, ob die Datei vorhanden ist:
ls -l /etc/apt/keyrings/docker.asc
Es muss eine Datei mit einer Größe größer als null Byte angezeigt werden.
6. Offizielle Docker-Paketquelle einrichten
[Bearbeiten]Den folgenden Block vollständig kopieren und ausführen:
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF Types: deb URIs: https://download.docker.com/linux/ubuntu Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/docker.asc EOF
Danach Paketlisten neu laden:
sudo apt update
Erfolgskriterium
[Bearbeiten]In der Ausgabe erscheint die Docker-Paketquelle ohne Signatur- oder HTTP-Fehler.
7. Docker Engine installieren
[Bearbeiten]sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Die vorgeschlagenen Änderungen prüfen und bestätigen.
8. Docker-Dienst prüfen
[Bearbeiten]sudo systemctl status docker --no-pager
Erwarteter Zustand:
Active: active (running)
Falls Docker nicht läuft:
sudo systemctl start docker sudo systemctl status docker --no-pager
Autostart prüfen und gegebenenfalls aktivieren:
sudo systemctl enable docker
9. Testcontainer starten
[Bearbeiten]sudo docker run --rm hello-world
Docker lädt ein kleines Testimage und startet es. Die Ausgabe muss sinngemäß `Hello from Docker!` enthalten. Durch `--rm` wird der Testcontainer nach dem Lauf automatisch entfernt.
10. Optional: Docker ohne sudo verwenden
[Bearbeiten]Für den vorgesehenen Administrationsbenutzer:
sudo usermod -aG docker "$USER"
Danach vollständig abmelden und erneut anmelden. Alternativ wirkt für die aktuelle Sitzung:
newgrp docker
Anschließend testen:
docker ps
Sicherheitshinweis: Mitglieder der Gruppe `docker` besitzen praktisch weitreichende Rechte auf dem Server. Nur ausdrücklich autorisierte Administrationskonten hinzufügen.
11. Installationsstand dokumentieren
[Bearbeiten]docker --version docker compose version sudo docker info
Für die Projektseite notieren:
- Ubuntu-Version und Architektur
- Docker-Version
- Installationsdatum
- Name des Administrationsbenutzers
- Ergebnis des `hello-world`-Tests
Typische Fehler
[Bearbeiten]- `Could not resolve host`
- Internetverbindung und DNS prüfen.
- `NO_PUBKEY` oder Signaturfehler
- Schlüsseldatei und `Signed-By`-Pfad kontrollieren; nicht mit unsicheren APT-Optionen umgehen.
- `permission denied while trying to connect to the Docker daemon socket`
- Befehl zunächst mit `sudo` ausführen oder Gruppenmitgliedschaft nach vollständiger Neuanmeldung prüfen.
- Docker startet nicht
- Details anzeigen:
sudo journalctl -u docker --no-pager -n 100
Fehler nicht durch Löschen von `/var/lib/docker` „beheben“; dort können produktive Images, Container und Volumes liegen.
Nächster Schritt
[Bearbeiten]Nach erfolgreicher Installation folgt die Einrichtung von megbes-internal.