sq.

Docker und Compose installieren

Einen frischen Ubuntu-Übungsserver vorbereiten und Docker vor der ersten Anwendung prüfen.

Veröffentlicht:

Voraussetzungen

Beginne mit der Vorbereitung der Maschine. Diese Schritte gelten für Ubuntu Server 24.04, eine Internetverbindung und einen Benutzer mit sudo-Rechten. Sie installieren Software systemweit. Wenn bereits Docker, Podman oder eine andere Container-Laufzeit installiert ist, folge den Migrationshinweisen der offiziellen Docker-Anleitung, statt Pakete zu mischen.

Drei Begriffe

Ein Image enthält eine Anwendung und ihre Dateien. Ein Container ist eine laufende Instanz dieses Images. Compose liest aus einer YAML-Datei, welche Dienste, Netzwerke und Speicher benötigt werden, und lässt Docker sie anlegen. Benötigt wird das Plugin docker compose, nicht das ältere Programm docker-compose.

Auf dem Übungsserver installieren

Die Befehle hinterlegen den Signaturschlüssel und die Paketquelle von Docker und installieren anschließend Engine und Compose. Führe den gesamten Block im Serverterminal aus. sudo kann nach deinem bei der Ubuntu-Installation vergebenen Passwort fragen. Der Text zwischen <<EOF und EOF wird in die Datei für die Paketquelle geschrieben.

sudo apt update
sudo apt install ca-certificates curl openssl
sudo install -m 0755 -d /etc/apt/keyrings
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
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
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Ergebnis prüfen

sudo systemctl is-active docker
sudo docker version
sudo docker compose version
sudo docker run --rm hello-world

Erwartet werden active, Versionen von Docker-Client und -Server, eine Compose-Version und die Meldung Hello from Docker. Der Testcontainer beendet sich danach. Verwende eine gepflegte Docker-Engine-Version ab 28. Ältere Versionen haben eine dokumentierte Ausnahme bei der Abschirmung von Loopback-Ports. Siehe Port-Veröffentlichung bei Docker.

Verwende in den Übungen weiterhin sudo docker. Die Docker-Gruppe gewährt praktisch Root-Kontrolle und ist keine harmlose Lösung für Rechteprobleme. Docker-Sicherheit

Fehler eingrenzen

  • Keine Verbindung zum Daemon: sudo systemctl status docker --no-pager und sudo journalctl -u docker -n 50 --no-pager zeigen Status und letzte Meldungen. Prüfe den Fehler vor einem Neustart.
  • Permission denied: Verwende sudo. Mache den Docker-Socket nicht für alle beschreibbar.
  • Compose fehlt: Prüfe, ob docker-compose-plugin erfolgreich installiert wurde. Das alte Python-Programm ersetzt dieses Plugin nicht.
  • Download oder Namensauflösung scheitert: Prüfe Internetverbindung und DNS des Servers, bevor du die Compose-Datei änderst.

Deaktiviere nicht die Firewall-Verwaltung von Docker und öffne keine Router-Ports für den Test. Container-Ports können andere Firewall-Pfade verwenden als Host-Dienste. Die nächste Übung bindet sie an Loopback.

Weiter: Übungsumgebung starten.

Alle Notizen →