🐳 Bereitstellungshandbuch · 2026

Hermes Agent Docker: Vollständiger Bereitstellungsleitfaden für 2026

Der vollständige Leitfaden zur Bereitstellung von Hermes Agent mit Docker im Jahr 2026 – behandelt Modus 1 vs. Modus 2, Compose-Einrichtung für die Produktion, Windows/WSL2-Fallstricke, ARM64-Unterstützung, Telegram-Bot-Integration und eine vollständige Referenz zur Fehlerbehebung.

📅 Aktualisiert: April 2026⏱ 14-minütige Lektüre✍️ EasyClaw Editorial
  • X(Twitter) icon
  • Facebook icon
  • LinkedIn icon
  • Copy link icon

Was ist Hermes Agent und warum Docker der richtige Weg ist, es auszuführen?

Hermes-Agent ist ein autonomer KI-Agent von Nous Research mit integrierter Lernschleife. Im Gegensatz zu zustandslosen Agenten, die bei jedem Durchlauf neu beginnen, baut Hermes eine dauerhafte Fähigkeitsbibliothek auf. Jede abgeschlossene Aufgabe kann zu einer wiederverwendbaren Fähigkeit werden, wodurch der Agent mit der Zeit messbar leistungsfähiger wird.

Der Betrieb von Hermes Bare-Metal funktioniert, verursacht aber echte Probleme:

  • Der Skill-Status und der Konversationsverlauf sind an das Dateisystem einer einzelnen Maschine gebunden
  • Die Reproduktion der Umgebung über VPS-Neuerstellungen hinweg erfordert manuelle Arbeit
  • Keine Prozessisolation bedeutet, dass ein außer Kontrolle geratener Unterprozess Auswirkungen auf Ihren Host haben kann

Docker löst alle drei. Ein richtig konfigurierter Container bietet Ihnen Portabilität, Isolation und – mit der richtigen Volume-Strategie – einen dauerhaften Lernzustand, der Image-Updates übersteht.

Zwei Docker-Modi erklärt – Wählen Sie, bevor Sie beginnen

Die meisten Leitfäden überspringen diese Entscheidung vollständig und springen zu docker run. Nicht. Die beiden Modi weisen deutlich unterschiedliche Sicherheits- und Betriebsprofile auf.

Modus 1: Hermes-Innencontainer Modus 2: Docker als Terminal-Sandbox
Was läuft wo Hermes + seine Laufzeit live im Container Hermes läuft auf dem Host; Docker erstellt wegwerfbare Sandbox-Container für Terminalaufgaben
Isolierung Hermes selbst ist isoliert Nur die Ausgabe von Terminalaufgaben ist isoliert
Staatsverwaltung Volumes regeln alles Das Host-Dateisystem behält den Hermes-Status
Empfohlen für VPS-Produktion, Teambereitstellungen Lokaler Entwickler, schnelles Experimentieren
DOCKER_HOST benötigt NEIN Ja (Geschwistercontainer-Setup)

Faustregel: Wenn Sie die Bereitstellung auf einem VPS durchführen oder eine reproduzierbare Produktionsumgebung wünschen, verwenden Sie Modus 1. Wenn Sie Hermes lokal ausführen und möchten, dass es Docker-Sandboxen für die Codeausführung startet, verwenden Sie Modus 2.

Modus 1 – Hermes läuft in einem Container

Hermes und alle seine Abhängigkeiten leben im Bild. Sie verwalten den Status über benannte Volumes. Die Container-Neustartrichtlinie hält ihn über Neustarts hinweg am Leben. Dies ist das häufigste Produktionsmuster.

  • Saubere Trennung vom Host – keine versehentlichen Schreibvorgänge auf Ihrem Computer
  • Volle Portabilität; Stellen Sie es überall mit derselben Compose-Datei erneut bereit
  • Etwas höherer Overhead als bei der nativen Ausführung

Modus 2 – Docker als Terminal-Backend-Sandbox

Hier läuft Hermes direkt auf dem Host (oder in einem Container) und fordert den Docker-Daemon auf, kurzlebige Container für die Shell-Ausführung zu starten. Sie konfigurieren es, indem Sie DOCKER_HOST festlegen, damit Hermes den Daemon erreichen kann:

export DOCKER_HOST=unix:///var/run/docker.sock   # Linux
export DOCKER_HOST=tcp://host.docker.internal:2375  # Windows/Mac (Docker Desktop)

Sicherheitshinweis: Durch das Mounten des Docker-Sockets in einem Container wird nahezu Root-Zugriff auf den Host gewährt. Tun Sie dies nur in Umgebungen, in denen Sie der Arbeitslast des Containers vollständig vertrauen.

Voraussetzungen und Umgebungseinrichtung

Bevor Sie ein Bild abrufen, bestätigen Sie Folgendes:

  • Docker Engine 24+ oder Docker Desktop 4.26+
  • Ein bereiter LLM-API-Schlüssel: OpenAI (OPENAI_API_KEY), Anthropic (Anthropic_API_KEY) oder ein lokaler Ollama-Endpunkt
  • Ausgehender Internetzugriff auf Port 443 (für LLM-API-Aufrufe)
  • Mindestens 2 GB RAM dem Container zugewiesen (4 GB empfohlen für von Ollama unterstützte Setups)

Windows-spezifisches Setup (Docker Desktop + WSL2)

Unter Windows brechen die meisten Docker-Bereitstellungen stillschweigend ab. Achten Sie auf Folgendes:

Übersetzung des Volume-Pfads

Docker Desktop unter Windows übersetzt Pfade über WSL2. Verwenden Sie Pfade im Linux-Stil in Compose-Dateien – vermeiden Sie Pfade im Windows-Stil (C:\Users\...) in Compose-volumes:-Definitionen.

# Correct — Docker Desktop translates this automatically
volumes:
  - hermes_data:/root/.hermes

Socket vs. Named Pipe

Unter Windows stellt Docker eine Named Pipe und keinen Unix-Socket bereit. Stellen Sie für Modus 2 Folgendes ein:

DOCKER_HOST=npipe:////./pipe/docker_engine

WSL2-Speicherbeschränkungen

Docker Desktop unter Windows setzt WSL2 standardmäßig auf 50 % des Host-RAM. Wenn sich Hermes träge fühlt, fügen Sie einen .wslconfig in Ihrem Windows-Benutzerprofil hinzu:

[wsl2]
memory=4GB
processors=2

Schnellstart – Hermes Agent mit Docker in 5 Minuten ausführen

Rufen Sie das offizielle Image ab und führen Sie den Setup-Assistenten aus:

# Pull the latest image
docker pull nousresearch/hermes-agent:latest

# Run with a persistent volume for state
docker run -it \
  -v hermes_home:/root/.hermes \
  -e OPENAI_API_KEY=your_key_here \
  nousresearch/hermes-agent:latest

Der Setup-Assistent startet beim ersten Lauf. Sie werden aufgefordert:

  1. Wählen Sie Ihren LLM-Anbieter (OpenAI, Anthropic, Ollama oder benutzerdefinierter Endpunkt)
  2. Geben Sie Ihren API-Schlüssel oder Ihre Endpunkt-URL ein
  3. Konfigurieren Sie das Terminal-Backend (nativ oder Docker-Sandbox).

Überprüfen Sie nach Abschluss, ob die Sitzung funktioniert:

> hello

Hermes sollte antworten und bestätigen, dass seine Fertigkeitsbibliothek initialisiert wurde. Wenn Sie skill store empty auf einem neuen Container sehen, ist das zu erwarten – durch die Nutzung sammeln sich Fähigkeiten an.

Produktionsbereitstellung mit Docker Compose

Der bloße Befehl docker run funktioniert zum Testen. Für alles Dauerhafte verwenden Sie Compose.

version: "3.9"

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    container_name: hermes-agent
    restart: unless-stopped
    stdin_open: true
    tty: true

    environment:
      # Use environment secrets — never hardcode keys in compose files
      OPENAI_API_KEY: ${OPENAI_API_KEY}
      Anthropic_API_KEY: ${Anthropic_API_KEY}
      HERMES_LOG_LEVEL: info

    volumes:
      - hermes_home:/root/.hermes         # Config + conversation history
      - hermes_skills:/root/.hermes/skills # Skill store — see next section

    deploy:
      resources:
        limits:
          memory: 2G
          cpus: "1.5"

    healthcheck:
      test: ["CMD", "hermes", "--health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s

    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

volumes:
  hermes_home:
  hermes_skills:

Speichern Sie Ihre API-Schlüssel in einer .env-Datei (niemals der Versionskontrolle unterworfen):

OPENAI_API_KEY=sk-...
Anthropic_API_KEY=sk-ant-...

Bewahrung der Hermes-Fähigkeiten bei Containerumbauten

Dies ist das am häufigsten übersehene Produktionsproblem. Hermes speichert erlernte Fähigkeiten getrennt von der allgemeinen Konfiguration. Hängen Sie diese Pfade explizit ein:

Weg Enthält Muss bestehen bleiben?
/root/.hermes Konfiguration, Sitzungsverlauf Ja
/root/.hermes/skills Bibliothek erlernter Fertigkeiten Kritisch
/root/.hermes/memory Langzeitgedächtnisspeicher Ja

Beim Aktualisieren des Bildes:

docker compose pull
docker compose up -d   # Named volumes persist automatically

Erweiterte Topologie – Host-Docker-Setup (Geschwistercontainer).

Diese Architektur wird verwendet, wenn Sie möchten, dass Hermes Geschwistercontainer für die isolierte Codeausführung orchestriert – beispielsweise um vom Benutzer übermittelten Code sicher auszuführen.

┌─────────────────────────────────┐
│         Docker Host             │
│                                 │
│  ┌──────────────┐               │
│  │ hermes-agent │◄──socket──────┤── /var/run/docker.sock
│  │  container   │               │
│  └──────┬───────┘               │
│         │ docker run (sibling)  │
│  ┌──────▼───────┐               │
│  │  sandbox-1   │  (ephemeral)  │
│  └──────────────┘               │
└─────────────────────────────────┘

Erstellen Sie eine Konfiguration für diese Topologie:

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    restart: unless-stopped
    environment:
      OPENAI_API_KEY: ${OPENAI_API_KEY}
      DOCKER_HOST: unix:///var/run/docker.sock
      HERMES_TERMINAL_BACKEND: docker
    volumes:
      - hermes_home:/root/.hermes
      - /var/run/docker.sock:/var/run/docker.sock  # Socket mount
    group_add:
      - "999"   # docker group GID — adjust to match your host

Sicherheitshinweise für die Produktion:

  • Beschränken Sie den Socket-Zugriff mithilfe eines Docker-Socket-Proxys (z. B. Tecnativa/docker-socket-proxy), um die API-Aufrufe einzuschränken, die Hermes durchführen kann
  • Machen Sie den Docker-Socket niemals in Umgebungen mit mehreren Mandanten verfügbar
  • Legen Sie userns-remap für den Docker-Daemon fest, wenn Sie eine stärkere Host-Isolation benötigen

Hermes über Telegram Bot mit Claude verbinden

Derzeit gibt es keinen schriftlichen Leitfaden, der dies behandelt – es wird nur in Videoform gezeigt. Hier ist das vollständige Setup.

Schritt 1: Erstellen Sie einen Telegram-Bot

Sprechen Sie mit @BotFather per Telegram:

/newbot
→ Name: Hermes Agent
→ Username: your_hermes_bot
→ Save the token: 123456:ABC-DEF...

Schritt 2: Holen Sie sich Ihr Claude OAuth-Token

Generieren Sie in Ihrer Anthropic-Konsole einen API-Schlüssel mit dem Bereich claude-3-5-sonnet oder claude-opus-4. Legen Sie es als Anthropic_API_KEY fest.

Schritt 3: Fügen Sie Ihrer Compose-Datei die Telegram-Konfiguration hinzu

environment:
  Anthropic_API_KEY: ${Anthropic_API_KEY}
  HERMES_LLM_PROVIDER: Anthropic
  HERMES_TELEGRAM_TOKEN: ${TELEGRAM_BOT_TOKEN}
  HERMES_TELEGRAM_ALLOWED_USERS: "your_telegram_user_id"

Schritt 4: Finden Sie Ihre Telegram-Benutzer-ID

Nachricht @userinfobot auf Telegram – es antwortet mit Ihrer numerischen Benutzer-ID.

Schritt 5: Starten Sie den Bot

docker compose up -d

Senden Sie Ihrem Bot eine Nachricht per Telegram. Hermes antwortet über das Claude-Backend. Die Einschränkung HERMES_TELEGRAM_ALLOWED_USERS stellt sicher, dass nur Ihr Konto mit dem Agenten interagieren kann.

Bereitstellung mehrerer Architekturen (ARM64 / Oracle Free Tier / Raspberry Pi)

Das nousresearch/hermes-agent-Image wird als Multi-Arch-Manifest geliefert. ARM64 wird unterstützt – ziehen Sie es explizit auf ARM-Hosts:

# Oracle Free Tier (Ampere A1) or Raspberry Pi 4/5
docker pull --platform linux/arm64 nousresearch/hermes-agent:latest

# Verify the architecture
docker inspect nousresearch/hermes-agent:latest | grep Architecture

Oracle Always Free Kontingent ist die beste kostenlose Hosting-Option für Hermes im Jahr 2026. Die Ampere A1-Instanz bietet Ihnen 4 ARM64-Kerne und 24 GB RAM – mehr als genug für eine dauerhafte Hermes-Bereitstellung bei einem Remote-LLM-Anbieter.

Bekannte ARM-spezifische Probleme:

  • Einige Quantisierungen des Ollama-Modells (Q8) laufen auf ARM langsamer; bevorzugen Sie Q4_K_M für lokale Inferenz
  • Wenn Sie auf exec format error klicken, bestätigen Sie, dass Sie das Flag --platform linux/arm64 verwenden
  • Docker Desktop auf Apple Silicon verarbeitet ARM nativ – kein Plattform-Flag erforderlich

Komplexe Agenten-Workflows verwalten? EasyClaw ist für Sie da

Das Ausführen von Hermes Agent in Docker ist ein leistungsstarkes Setup – aber die Orchestrierung mehrerer KI-Agenten, die Verwaltung von Skill-Pipelines und die Aufrechterhaltung des persistenten Speichers über komplexe Arbeitsabläufe hinweg stoßen die meisten Teams an ihre Grenzen. EasyClaw ist eine Desktop-native KI-Agentenplattform, die genau dafür entwickelt wurde: Multi-Agenten-Koordination in Produktionsqualität ohne Infrastrukturprobleme.

  • Visuelle Orchestrierung für Multi-Agent-Pipelines – kein YAML-Wrangling
  • Persistentes Gedächtnis und Fähigkeitsbibliotheken, die Sitzungen überdauern
  • Läuft vollständig auf Ihrem Computer – keine Cloud-Sperre, kein Datenverlust
  • Native Integrationen mit Telegram, Slack und benutzerdefinierten Webhooks
  • Integrierte Planung, Überwachung und Protokollprüfung
Probieren Sie EasyClaw Free aus →

Fehlerbehebung bei häufigen Hermes Agent Docker-Fehlern

Eine Referenztabelle für die Fehler, auf die Sie am wahrscheinlichsten stoßen:

Versagen Symptom Diagnose Fix
Fehler beim Abrufen des Bildes manifest unknown docker pull nousresearch/hermes-agent:latest schlägt fehl Überprüfen Sie Docker Hub auf aktuell gültige Tags. Versuchen Sie es mit --platform linux/amd64
Volume-Berechtigung verweigert Container wird mit Berechtigungsfehler auf /root/.hermes beendet docker run --rm -v hermes_home:/data busybox ls -la /data docker volume rm hermes_home und neu erstellen oder mit chown über einen Busybox-Init-Container reparieren
LLM-Authentifizierungsfehler 401 Unauthorized in Protokollen docker logs hermes-agent | grep -i auth Überprüfen Sie, ob der API-Schlüssel in .env richtig eingestellt ist. Überprüfen Sie, ob führende/nachgestellte Leerzeichen vorhanden sind
Der Setup-Assistent hängt Der Assistent fordert Sie auf, akzeptiert jedoch keine Eingaben N / A Stellen Sie sicher, dass die Flags -it auf docker run gesetzt sind. Verfassen erfordert stdin_open: true + tty: true
LLM nicht erreichbar Connection refused an Ollama oder lokalen Endpunkt docker exec hermes-agent curl http://host.docker.internal:11434 Verwenden Sie host.docker.internal anstelle von localhost; Fügen Sie bei Bedarf --add-host hinzu
Fähigkeiten bleiben nicht bestehen Fertigkeitsbibliothek nach Neuaufbau leer docker volume ls – Überprüfen Sie, ob das Volume vorhanden ist Stellen Sie sicher, dass das Volume hermes_skills benannt ist (kein Bind-Mount) und dass die Compose-Datei darauf verweist
Fehler im ARM-Exec-Format exec /usr/local/bin/hermes: exec format error docker inspect image | grep Architecture Mit --platform linux/arm64 erneut ziehen
Socket-Berechtigung verweigert permission denied /var/run/docker.sock ls -la /var/run/docker.sock auf dem Host Fügen Sie den Containerbenutzer über group_add in Compose zur Docker-Gruppe hinzu

Häufig gestellte Fragen

F: Werden meine Hermes-Fähigkeiten einen docker compose pull && up -d überleben?

A: Ja – solange Ihre Fähigkeiten auf einem benannten Volume gespeichert sind (kein Bind-Mount oder anonymes Volume). Das Compose-Setup in diesem Handbuch verwendet hermes_skills als benanntes Volume, das Docker bei allen Image-Updates automatisch beibehält.

F: Kann ich mehrere Hermes-Instanzen auf demselben Host ausführen?

A: Ja. Geben Sie jeder Instanz einen eigenen container_name und separate benannte Volumes. Sie müssen außerdem sicherstellen, dass es zu keinen Konflikten an exponierten Ports kommt. Jede Instanz sammelt ihre eigene unabhängige Fertigkeitsbibliothek.

F: Unterstützt Hermes Agent lokale LLMs über Ollama in Docker?

A: Ja. Führen Sie Ollama als separaten Dienst im selben Compose-Stack aus und verweisen Sie Hermes auf http://Ollama:11434 (unter Verwendung des internen DNS von Docker). Vermeiden Sie es, innerhalb eines Containers auf localhost zu zeigen – verwenden Sie den Dienstnamen oder host.docker.internal für hostseitiges Ollama.

F: Ist es sicher, den Docker-Socket im Hermes-Container zu montieren?

A: Durch das Socket-Mounting erhält der Container nahezu Root-Berechtigungen über Ihren Host. Dies ist auf einem Einzelbenutzer-VPS akzeptabel, bei dem Sie alle Arbeitslasten kontrollieren. Verwenden Sie in gemeinsam genutzten oder mandantenfähigen Umgebungen einen Socket-Proxy (z. B. Tecnativa/docker-socket-proxy), um nur die API-Aufrufe, die Hermes benötigt, auf die Whitelist zu setzen.

F: Was ist die Mindestserverspezifikation für eine Hermes-Produktionsbereitstellung?

A: Mit einem Remote-LLM-Anbieter (OpenAI/Anthropic) sind 1 vCPU und 2 GB RAM machbar. Für ein selbst gehostetes Ollama-Backend benötigen Sie mindestens 8 GB RAM und eine halbwegs moderne CPU. Der kostenlose Tarif Ampere A1 von Oracle (4 Kerne, 24 GB) deckt beide Szenarien bequem und zum Nulltarif ab.

F: Wie kann ich die erlernten Fähigkeiten und das Gedächtnis von Hermes sichern?

A: Verwenden Sie docker run --rm -v hermes_skills:/data -v $(pwd):/backup busybox tar czf /backup/hermes-skills-backup.tar.gz /data. Führen Sie dies als geplanten Cron-Job auf Ihrem Host aus, um vor jeder Image-Aktualisierung automatische Backups zu erhalten.

Abschließende Gedanken: Checkliste und nächste Schritte

Die Lernschleife unterscheidet Hermes von allen anderen Agenten, die Sie in Docker ausgeführt haben. Das obige Setup stellt sicher, dass die Schleife tatsächlich funktioniert sammelt sich an – wird nicht jedes Mal zurückgesetzt, wenn Sie ein Update versenden.

Bevor Sie eine Bereitstellung als produktionsbereit bezeichnen, bestätigen Sie Folgendes:

  • Benannte Volumes, die sowohl für hermes_home als auch für hermes_skills erstellt wurden
  • API-Schlüssel werden in .env gespeichert und sind in Compose nicht fest codiert
  • restart: unless-stopped Richtlinie aktiv
  • Gesundheitscheck bestanden: docker inspect hermes-agent --format='{{.State.Health.Status}}'
  • Protokollrotation konfiguriert (max-size, max-file)
  • Ressourcenlimits werden festgelegt, um eine Speichererschöpfung zu verhindern
  • Der Einrichtungsassistent wurde abgeschlossen und die erste Chat-Sitzung bestätigt
  • (Wenn Modus 2) Docker-Socket-Mount bestätigt und Socket-Proxy berücksichtigt

Nächste Schritte, um sofort einen Mehrwert zu erzielen:

  1. Führen Sie ein paar echte Aufgaben aus – Dateizusammenfassung, Codeüberprüfung, Webrecherche –, um die Kompetenzbibliothek zu erweitern
  2. Führen Sie nach 10–15 Aufgaben hermes skills list aus, um zu sehen, was gelernt wurde
  3. Auf dem GitHub von Nous Research finden Sie Dokumente zur Agentenkonfiguration, die benutzerdefinierte Skill-Vorlagen und Speicheroptimierung abdecken
  4. Wenn Sie Oracle Free Tier nutzen, richten Sie einen Cron-basierten docker compose pull && docker compose up -d ein, um Image-Updates ohne Ausfallzeiten zu ermöglichen und gleichzeitig den erlernten Status beizubehalten