Home ITHome ServerDocker auf Arch Linux installieren: Zwei Befehle, einer wird vergessen

Docker auf Arch Linux installieren: Zwei Befehle, einer wird vergessen

by Dimitri Roschkowski
0 Kommentare

Auf Arch Linux ist Docker in zwei Befehlen installiert – und genau diese Kürze führt zum häufigsten Fehler. Denn anders als auf Debian und Ubuntu startet der Dienst danach nicht von allein. Wer das nicht weiß, sucht den Fehler bei der Installation, obwohl nur ein Befehl fehlt.

Dazu kommt eine Besonderheit: Docker bietet für Arch kein eigenes Repository an. Die Pakete kommen aus den Arch-Quellen selbst und werden von der Distribution gepflegt. Das hat Vor- und Nachteile, die dieser Artikel benennt.

Geprüft auf einem laufenden Arch-System (Omarchy 4.0.3, Kernel 7.2.3) mit Docker 29.7.2, docker-compose 5.5.1 und buildx 0.37.0, Stand September 2026.

Das Wichtigste in Kürze

  • Pakete kommen aus den Arch-Quellen, nicht von Docker. Es gibt kein docker-ce.
  • Der Dienst muss von Hand aktiviert werden – das ist der entscheidende Unterschied.
  • Niemals pacman -Sy paket verwenden. Immer -Syu, sonst riskierst du ein halb aktualisiertes System.
  • Auf manchen Arch-Ableitungen ist Docker schon installiert, aber abgeschaltet.

Voraussetzungen

Ein aktuelles Arch Linux oder ein Ableger wie Manjaro, EndeavourOS, CachyOS oder Omarchy, dazu ein Benutzer mit sudo-Rechten. Weil Arch ein rollendes Release ist, gibt es keine Versionsnummern zu beachten – aber eine Bedingung: Dein System sollte aktuell sein, bevor du Pakete nachinstallierst. Warum, steht gleich im ersten Schritt.

Erst nachsehen: ist Docker schon da?

Einige Arch-Zusammenstellungen liefern Docker bereits mit. Auf dem Testsystem war genau das der Fall:

$ pacman -Q docker docker-compose docker-buildx
docker 1:29.7.2-1
docker-compose 5.5.1-1
docker-buildx 0.37.0-1

Alles vorhanden – und trotzdem lief nichts:

$ systemctl is-enabled docker
disabled
$ systemctl is-active docker
inactive

Wenn du auf einem solchen System docker ps eingibst und eine Fehlermeldung über den Socket bekommst, fehlt nicht die Installation, sondern Schritt 2 dieses Artikels.

Schritt 1: Pakete installieren

Ein Befehl genügt:

sudo pacman -Syu docker docker-compose docker-buildx

Drei Pakete, und die Namen unterscheiden sich von denen auf Debian:

Arch-Paket Entspricht auf Debian/Ubuntu Wofür
docker docker-ce + docker-ce-cli + containerd.io Dienst, Befehl und Laufzeit in einem Paket
docker-compose docker-compose-plugin Das docker compose-Plugin, nicht das alte Python-Programm
docker-buildx docker-buildx-plugin Abbilder bauen, auch für andere Architekturen

Das Paket docker-compose aus den Arch-Quellen ist bereits die aktuelle Plugin-Variante – es liefert docker compose mit Leerzeichen, nicht das abgekündigte docker-compose mit Bindestrich. Der Paketname führt hier in die Irre.

Warum -Syu und nicht -Sy

Dieser Punkt ist wichtiger als die Installation selbst. Auf Arch führt -Sy nur die Paketdatenbank nach, ohne das System zu aktualisieren. Installierst du danach ein Paket, kann es gegen Bibliotheken gebaut sein, die auf deinem System noch in einer älteren Fassung liegen – ein Teilupgrade. Das Ergebnis reicht von Fehlermeldungen über fehlende Bibliotheken bis zu einem System, das nicht mehr startet.

Arch unterstützt Teilupgrades ausdrücklich nicht. Die Regel lautet deshalb: immer -Syu, auch wenn es dabei mehr aktualisiert als nur Docker. Wer das nicht will, aktualisiert eben zu einem anderen Zeitpunkt – aber nicht halb.

Schritt 2: Den Dienst aktivieren – der entscheidende Schritt

Arch-Pakete aktivieren ihre Dienste grundsätzlich nicht selbst. Das ist Absicht: Die Distribution entscheidet nicht für dich, was laufen soll. Für Docker heißt das:

sudo systemctl enable --now docker.service

Im Test sah der Übergang so aus:

vorher:  enabled=disabled  active=inactive
Created symlink '/etc/systemd/system/multi-user.target.wants/docker.service' → '/usr/lib/systemd/system/docker.service'.
nachher: enabled=enabled  active=active

Die beiden Teile des Befehls haben getrennte Aufgaben: enable sorgt dafür, dass der Dienst beim Booten startet, --now startet ihn sofort. Lässt du --now weg, läuft Docker erst nach dem nächsten Neustart.

docker.service oder docker.socket?

Arch bringt beide Units mit, und das verwirrt zu Recht:

$ systemctl is-enabled docker.service
enabled
$ systemctl is-enabled docker.socket
enabled

Der Unterschied: docker.service hält den Dienst dauerhaft laufend. docker.socket ist Socket-Aktivierung – der Dienst schläft und wird erst gestartet, wenn etwas auf den Socket zugreift.

Für einen Server, auf dem Container dauerhaft laufen sollen, willst du docker.service aktivieren. Nur die Socket-Variante zu nehmen klingt sparsam, hat aber eine unangenehme Folge: Nach einem Neustart läuft der Dienst nicht, bis jemand einen Docker-Befehl ausführt – und Container mit restart: unless-stopped starten dann eben nicht automatisch mit. Auf einem Arbeitsplatzrechner, der Docker nur gelegentlich braucht, ist die Socket-Aktivierung dagegen sinnvoll.

Schritt 3: Funktionstest

sudo docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
4f55086f7dd0: Pull complete
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

Das --rm entfernt den Container gleich nach dem Beenden – bei einem Test, den man nie wieder braucht, die sauberere Variante.

Ein Blick auf die Kennzahlen:

$ docker info --format "Storage: {{.Driver}} | Cgroup: {{.CgroupDriver}} v{{.CgroupVersion}}"
Storage: overlayfs | Cgroup: systemd v2

Schritt 4: Docker ohne sudo

Auf Arch existiert die Gruppe docker nach der Installation bereits, dein Benutzer ist aber nicht darin:

$ id -nG
dr wheel

Aufnehmen:

sudo usermod -aG docker $USER

Danach abmelden und neu anmelden. Erst dann greift es:

$ id -nG
dr docker wheel
$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

Für ein einzelnes Terminal reicht newgrp docker.

Zur Einordnung: Die Gruppe docker entspricht faktisch Root-Rechten – über einen Container lässt sich das Dateisystem des Wirts einhängen und beschreiben. Auf dem eigenen Rechner unkritisch, auf geteilten Systemen eine bewusste Entscheidung.

Was auf einem rollenden Release anders ist

Arch liefert dir stets die neueste Docker-Version – das ist der Vorteil. Der Preis ist Aufmerksamkeit an drei Stellen:

Docker aktualisiert mit dem System. Ein pacman -Syu kann eine neue Docker-Hauptversion mitbringen. Meist geht das glatt, gelegentlich ändert sich Verhalten. Auf einem Server, der wichtige Dienste trägt, solltest du nach dem Upgrade kontrollieren, ob alle Container wieder laufen:

docker ps -a --format "{{.Names}}\t{{.Status}}"

Der Dienst wird beim Upgrade neu gestartet. Laufende Container werden dabei kurz unterbrochen. Mit restart: unless-stopped in der Compose-Datei kommen sie von allein zurück; ohne diese Angabe bleiben sie aus.

Die Arch-Wiki ist die bessere Dokumentation. Dockers eigene Anleitungen kennen Arch nicht. Bei Problemen ist der Wiki-Artikel „Docker“ die verlässlichere Quelle – er ist ausführlich und wird gepflegt.

Wer Docker auf einem Rechner betreibt, der ohne Aufsicht durchlaufen soll, ist mit einem Debian- oder Ubuntu-Unterbau besser beraten. Für einen Arbeitsplatz oder einen Heimserver, den du ohnehin im Blick hast, ist Arch völlig in Ordnung.

Container-Ports und die Firewall

Ein Punkt, der auf jedem System gilt und den man kennen muss: Veröffentlichte Container-Ports umgehen deine Firewall. Docker schreibt seine Weiterleitungsregeln ganz vorn in die Filterketten – vor denen deiner Firewall. Ein Container mit

    ports:
      - "8080:80"

ist für das gesamte Netzwerk erreichbar, auch wenn deine Firewall eingehende Verbindungen verbietet.

Die einfachste Absicherung ist eine Adresse vor dem Port:

    ports:
      - "127.0.0.1:8080:80"

Damit horcht der Dienst nur lokal. Brauchst du ihn im Netz, stellst du einen Reverse Proxy davor. Wer veröffentlichte Ports behalten und dennoch einschränken will, setzt Regeln in der Kette DOCKER-USER – die ist ausdrücklich für eigene Regeln vorgesehen, und Docker rührt sie nicht an. Ausführlich mit Nachweis steht das in unserer Ubuntu-Anleitung.

Wichtige Dateien und Verzeichnisse

Pfad Bedeutung
/var/lib/docker Abbilder, Container, Volumes
/etc/docker/daemon.json Konfiguration; existiert standardmäßig nicht
/usr/lib/systemd/system/docker.service Die systemd-Unit
/usr/lib/systemd/system/docker.socket Die Unit für Socket-Aktivierung
/var/run/docker.sock Der Socket zwischen Befehl und Dienst

Platzverbrauch prüfen mit docker system df, aufräumen mit docker system prune. Auf Arch lohnt zusätzlich der Blick auf den Paket-Cache unter /var/cache/pacman/pkg, der ebenfalls gern wächst.

Passende Hardware

Arch auf einem Arbeitsplatz oder kleinen Server – in beiden Fällen ist die SSD der wichtigste Posten.

* Affiliate-Links: Als Amazon-Partner verdienen wir an qualifizierten Käufen. Bitte prüfe die Kompatibilität mit deinem System.

Häufige Fragen

Warum gibt es kein docker-ce für Arch?

Weil Docker nur für Distributionen mit festen Veröffentlichungszyklen eigene Pakete baut. Bei einem rollenden Release wäre ein separates Repository kaum zu pflegen. Die Arch-Betreuer bauen Docker stattdessen selbst, meist innerhalb weniger Tage nach einer neuen Version.

Funktioniert das auch auf Manjaro oder EndeavourOS?

Ja, die Befehle sind identisch. Manjaro hält Pakete bewusst einige Zeit zurück, sodass du dort eine etwas ältere Docker-Version bekommst – für den Betrieb ist das eher ein Vorteil.

Muss ich das AUR benutzen?

Nein. docker, docker-compose und docker-buildx liegen alle in den offiziellen Arch-Quellen. Im AUR findest du zusätzlich Randfälle wie docker-rootless-extras, die du nur für bestimmte Vorhaben brauchst.

docker ps meldet „Cannot connect to the Docker daemon“ – warum?

In neun von zehn Fällen fehlt Schritt 2: Der Dienst läuft nicht. Prüfe mit systemctl is-active docker. Kommt inactive, hol sudo systemctl enable --now docker.service nach. Kommt active, ist es die Gruppenmitgliedschaft aus Schritt 4 – dann fehlt die neue Anmeldung.

Wie schalte ich Docker vorübergehend ab?

sudo systemctl stop docker.socket docker.service. Beide Units, sonst startet die Socket-Aktivierung den Dienst beim nächsten Zugriff gleich wieder.

Wie entferne ich Docker vollständig?

sudo systemctl disable --now docker.service docker.socket
sudo pacman -Rns docker docker-compose docker-buildx
sudo rm -rf /var/lib/docker

Der letzte Befehl löscht alle Abbilder, Container und Volumes unwiderruflich.

Fazit

Auf Arch ist Docker mit pacman -Syu docker docker-compose docker-buildx und systemctl enable --now docker.service in zwei Befehlen einsatzbereit. Der zweite ist der, den alle vergessen – und weil Arch-Pakete grundsätzlich keine Dienste selbst starten, wiederholt sich dieses Muster bei jedem weiteren Serverdienst, den du installierst.

Die Frage, die du dir vorher stellen solltest, ist nicht technisch: Willst du auf einem rollenden Release Dienste betreiben, die durchlaufen müssen? Für den Arbeitsplatz und den beaufsichtigten Heimserver ja. Für den Server im Keller, an den du ein Jahr nicht denkst, wäre Debian die ruhigere Wahl.

Alle Anleitungen im Überblick: Docker auf jedem System installieren.

You may also like

Hinterlasse einen Kommentar