🐳 배포 가이드 · 2026

Hermes Agent Docker: 2026년 전체 배포 가이드

Mode 1과 Mode 2, 프로덕션 Compose 설정, Windows/WSL2 문제, ARM64 지원, Telegram 봇 통합 및 전체 문제 해결 참조를 다루는 2026년 Docker와 함께 Hermes Agent을 배포하기 위한 전체 가이드입니다.

📅 업데이트 날짜: 2026년 4월⏱ 14분 읽기✍️ EasyClaw 사설
  • X(Twitter) icon
  • Facebook icon
  • LinkedIn icon
  • Copy link icon

Hermes Agent이란 무엇이며 Docker가 이를 실행하는 올바른 방법인 이유

Hermes Agent 학습 루프가 내장된 Nous Research의 자율 AI 에이전트입니다. 실행할 때마다 새로 시작하는 상태 비저장 에이전트와 달리 Hermes는 지속적인 기술 라이브러리를 구축합니다. 완료된 각 작업은 재사용 가능한 기술이 되어 시간이 지남에 따라 에이전트의 능력이 눈에 띄게 향상됩니다.

Hermes 베어메탈을 실행하면 작동하지만 실제 문제가 발생합니다.

  • 스킬 상태와 대화 기록이 단일 머신의 파일 시스템에 연결되어 있습니다.
  • VPS 재구축을 통해 환경을 재현하려면 수동 작업이 필요합니다.
  • No 프로세스 격리는 런어웨이 하위 프로세스가 호스트에 영향을 미칠 수 있음을 의미합니다.

Docker는 세 가지를 모두 해결합니다. 적절하게 구성된 컨테이너는 이식성, 격리성을 제공하고 올바른 볼륨 전략을 통해 이미지 업데이트 후에도 지속되는 지속적인 학습 상태를 제공합니다.

Two Docker Modes Explained — 시작하기 전에 선택하세요

대부분의 가이드는 이 결정을 완전히 건너뛰고 docker run으로 이동합니다. 하지 않다. 두 가지 모드는 보안 및 운영 프로필이 상당히 다릅니다.

Mode 1: 헤르메스 내부 컨테이너 Mode 2: 터미널 샌드박스로서의 Docker
무엇이 어디에서 실행되는가 Hermes + its runtime live inside the container Hermes는 호스트에서 실행됩니다. Docker는 터미널 작업을 위해 일회용 샌드박스 컨테이너를 만듭니다.
Isolation Hermes itself이 격리되었습니다. Only the output of terminal tasks이 격리되었습니다.
State management Volumes handle everything Host filesystem holds Hermes state
Recommended에 대한 VPS production, team deployments Local dev, quick experimentation
DOCKER_HOST needed No Yes (sibling container setup)

Rule of thumb: VPS에 배포하거나 재현 가능한 프로덕션 환경을 원하는 경우 모드 1을 사용하세요. Hermes를 로컬에서 실행 중이고 코드 실행을 위해 Docker 샌드박스를 스핀업하려면 모드 2를 사용하세요.

Mode 1 — 컨테이너 내부에서 실행되는 헤르메스

Hermes와 그 모든 종속성은 이미지 안에 있습니다. 명명된 볼륨을 통해 상태를 관리합니다. 컨테이너 다시 시작 정책은 재부팅 후에도 컨테이너를 유지합니다. 이것이 가장 일반적인 생산 패턴입니다.

  • 호스트로부터의 깔끔한 분리 - 실수로 컴퓨터에 쓰는 일이 없습니다.
  • 완전한 이식성; 동일한 작성 파일을 사용하여 어디서나 재배포
  • 기본적으로 실행하는 것보다 약간 높은 오버헤드

Mode 2 — 터미널 백엔드 샌드박스로서의 Docker

여기에서 Hermes는 호스트(또는 컨테이너)에서 직접 실행되며 Docker 데몬을 호출하여 셸 실행을 위해 임시 컨테이너를 가동합니다. Hermes가 데몬에 접근할 수 있도록 DOCKER_HOST을 설정하여 구성합니다.

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

보안 참고사항: 컨테이너 내부에 Docker 소켓을 마운트하면 호스트에 대한 루트 근처 액세스 권한이 부여됩니다. 컨테이너의 워크로드를 완전히 신뢰하는 환경에서만 이 작업을 수행하세요.

전제 조건 및 환경 설정

이미지를 가져오기 전에 다음을 확인하세요.

  • Docker Engine 24+ 또는 Docker Desktop 4.26+
  • 준비된 LLM API 키: OpenAI(OPENAI_API_KEY), Anthropic(ANTHROPIC_API_KEY) 또는 로컬 Ollama 엔드포인트
  • 포트 443의 아웃바운드 인터넷 액세스(LLM API 호출용)
  • 적어도 2 GB RAM 컨테이너에 할당됨(Ollama 지원 설정에는 4GB 권장)

Windows-Specific Setup (Docker Desktop + WSL2)

Windows는 대부분의 Docker 배포가 조용히 중단되는 곳입니다. 다음을 주의하세요:

볼륨 경로 변환

Windows의 Docker Desktop은 WSL2를 통해 경로를 변환합니다. Compose 파일 내에서 Linux 스타일 경로를 사용하십시오. Compose volumes: 정의에서 Windows 스타일 경로(C:\Users\...)를 사용하지 마십시오.

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

소켓 대 명명된 파이프

Windows에서 Docker는 Unix 소켓이 아닌 명명된 파이프를 노출합니다. Mode 2의 경우 다음을 설정합니다.

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

WSL2 메모리 제한

Windows의 Docker Desktop은 기본적으로 WSL2를 호스트 RAM의 50%로 설정합니다. Hermes가 느리게 느껴진다면 Windows 사용자 프로필에 .wslconfig을 추가하세요.

[wsl2] memory=4GB processors=2

빠른 시작 — 5분 안에 Docker를 사용하여 Hermes Agent 실행

공식 이미지를 가져와서 설정 마법사를 실행하세요.

# 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

그만큼 설정 마법사 첫 실행에 시작됩니다. 다음을 수행하라는 메시지가 표시됩니다.

  1. LLM 제공업체(OpenAI, Anthropic, Ollama 또는 사용자 정의 엔드포인트)를 선택하세요.
  2. API 키 또는 엔드포인트 URL을 입력하세요.
  3. 터미널 백엔드 구성(네이티브 또는 Docker 샌드박스)

완료되면 세션이 작동하는지 확인합니다.

> hello

Hermes는 응답하고 스킬 라이브러리가 초기화되었는지 확인해야 합니다. 새로운 컨테이너에 skill store empty이 표시된다면 이는 예상된 현상입니다. 사용을 통해 기술이 축적됩니다.

Production Deployment with Docker Compose

베어 docker run 명령은 테스트용으로 작동합니다. 지속적인 것이 있으면 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:

API 키를 .env 파일에 저장합니다(버전 제어에 적용되지 않음).

OPENAI_API_KEY=sk-... ANTHROPIC_API_KEY=sk-ant-...

컨테이너 재구축 전반에 걸쳐 Hermes 기술 보존

이것은 가장 간과되는 생산 문제입니다. 헤르메스는 학습한 스킬을 일반 설정과 별도로 저장합니다. 다음 경로를 명시적으로 마운트합니다.

포함 지속되어야 하는가?
/root/.hermes Config, session history Yes
/root/.hermes/skills Learned skill library 비판적인
/root/.hermes/메모리 Long-term memory store Yes

이미지를 업데이트하는 경우:

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

Advanced Topology — Host-Docker(형제 컨테이너) 설정

이 아키텍처는 Hermes가 격리된 코드 실행을 위해 형제 컨테이너를 조정하도록 하려는 경우에 사용됩니다(예: 사용자가 제출한 코드를 안전하게 실행).

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

이 토폴로지에 대한 구성을 작성합니다.

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

프로덕션에 대한 보안 참고사항:

  • Hermes가 수행할 수 있는 API 호출을 제한하려면 Docker 소켓 프록시(예: Tecnativa/docker-socket-proxy)를 사용하여 소켓 액세스를 제한하세요.
  • 다중 테넌트 환경에서 Docker 소켓을 노출하지 마십시오.
  • 더 강력한 호스트 격리가 필요한 경우 Docker 데몬에서 userns-remap를 설정하세요.

Connecting Hermes to Claude via Telegram Bot

No 서면 가이드는 현재 이 내용을 다루고 있으며 비디오 형식으로만 표시됩니다. 전체 설정은 다음과 같습니다.

Step 1: Telegram 봇 생성

Telegram에서 @BotFather과 대화하세요:

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

Step 2: Claude OAuth 토큰 받기

Anthropic 콘솔에서 claude-3-5-sonnet 또는 claude-opus-4 범위를 사용하여 API 키를 생성합니다. ANTHROPIC_API_KEY로 설정하세요.

Step 3: 작성 파일에 Telegram 구성을 추가합니다.

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"

Step 4: Telegram 사용자 ID 찾기

Telegram의 @userinfobot 메시지 — 숫자로 된 사용자 ID로 응답합니다.

Step 5: 봇 시작

docker compose up -d

텔레그램으로 봇에게 메시지를 보내세요. Hermes는 Claude 백엔드를 통해 응답합니다. HERMES_TELEGRAM_ALLOWED_USERS 제한은 귀하의 계정만 에이전트와 상호 작용할 수 있도록 보장합니다.

다중 아키텍처 배포(ARM64 / Oracle 프리 티어 / Raspberry Pi)

nousresearch/hermes-agent 이미지는 멀티 아키텍처 매니페스트로 제공됩니다. ARM64가 지원됩니다. ARM 호스트에서 명시적으로 끌어옵니다.

# 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 Tier 은 2026년 Hermes를 위한 최고의 무료 호스팅 옵션입니다. Ampere A1 인스턴스는 4개의 ARM64 코어와 24GB RAM을 제공합니다. 이는 원격 LLM 공급자를 통한 지속적인 Hermes 배포에 충분합니다.

알려진 ARM 관련 문제:

  • 일부 Ollama 모델 양자화(Q8)는 ARM에서 더 느리게 실행됩니다. 로컬 추론에는 Q4_K_M을 선호합니다.
  • exec format error에 도달하면 --platform linux/arm64 플래그를 사용하고 있는지 확인하세요.
  • Apple Silicon의 Docker Desktop은 기본적으로 ARM을 처리하므로 플랫폼 플래그가 필요하지 않습니다.

복잡한 상담원 워크플로를 관리하시나요? EasyClaw에 대해 알고 계십니까?

Docker에서 Hermes Agent을 실행하는 것은 강력한 설정입니다. 그러나 여러 AI 에이전트를 조정하고, 기술 파이프라인을 관리하고, 복잡한 워크플로에서 영구 메모리를 유지하는 것은 대부분의 팀이 벽에 부딪히는 부분입니다. EasyClaw은 인프라 문제 없이 프로덕션 수준의 다중 에이전트 조정을 위해 구축된 데스크탑 기반 AI 에이전트 플랫폼입니다.

  • 다중 에이전트 파이프라인을 위한 시각적 오케스트레이션 — YAML 랭글링 없음
  • 세션 후에도 유지되는 영구 메모리 및 기술 라이브러리
  • 전적으로 귀하의 컴퓨터에서 실행됩니다. 클라우드에 종속되지 않고 데이터 유출도 없습니다.
  • Telegram, Slack 및 사용자 정의 웹후크와의 기본 통합
  • 내장된 일정 관리, 모니터링, 로그 검사
EasyClaw을 무료로 사용해 보세요 →

일반적인 Hermes Agent Docker 오류 문제 해결

발생할 가능성이 가장 높은 오류에 대한 참조 표는 다음과 같습니다.

실패 징후 진단 고치다
Image pull error manifest unknown docker pull nousresearch/hermes-agent:latest 실패 현재 유효한 태그의 경우 Check Docker Hub; --platform linux/amd64을 시도해 보세요.
Volume permission denied /root/.hermes에 대한 권한 오류로 인해 컨테이너가 종료됩니다. docker run --rm -v hermes_home:/data busybox ls -la /data docker volume rm hermes_home을 다시 생성하거나 비지박스 초기화 컨테이너를 통해 chown로 수정합니다.
LLM auth failure 로그의 401 Unauthorized docker logs hermes-agent | grep -i auth Verify API key이 .env에서 올바르게 설정되었습니다. 선행/후행 공백을 확인하세요.
설정 마법사가 중단됩니다. Wizard prompts but accepts no input 해당 없음 -it 플래그가 docker run에 설정되어 있는지 확인하세요. 작성하려면 stdin_open: true + tty: true이 필요합니다.
LLM unreachable Connection refused을 Ollama 또는 로컬 엔드포인트로 docker exec hermes-agent curl http://host.docker.internal:11434 localhost 대신 host.docker.internal을 사용하세요. 필요한 경우 --add-host을 추가하세요.
Skills not persisting Skill library empty after rebuild docker volume ls — 볼륨이 존재하는지 확인하세요. hermes_skills 볼륨의 이름이 지정되었는지(바인드 마운트 아님) 확인하고 파일이 이를 참조하는지 확인하세요.
ARM exec 형식 오류 exec /usr/local/bin/hermes: exec format error docker inspect image | grep Architecture --platform linux/arm64로 다시 가져오기
Socket permission denied permission denied /var/run/docker.sock 호스트의 ls -la /var/run/docker.sock Compose의 group_add을 통해 docker 그룹에 컨테이너 사용자 추가

Frequently Asked Questions

Q: 내 헤르메스 기술이 docker compose pull && up -d 후에도 유지되나요?

A: Yes — 귀하의 기술이 명명된 볼륨(바인드 마운트 또는 익명 볼륨이 아님)에 저장되어 있는 한. 이 가이드의 Compose 설정에서는 hermes_skills을 명명된 볼륨으로 사용하며, Docker는 이미지 업데이트 시 자동으로 이를 보존합니다.

Q: 동일한 호스트에서 여러 Hermes 인스턴스를 실행할 수 있습니까?

답: 그렇습니다. 각 인스턴스에 고유한 container_name 및 별도의 명명된 볼륨을 제공합니다. 또한 노출된 포트에서 충돌하지 않는지 확인해야 합니다. 각 인스턴스는 자체적인 독립적인 스킬 라이브러리를 축적합니다.

Q: Hermes Agent은 Docker 내부의 Ollama을 통해 로컬 LLM을 지원합니까?

답: 그렇습니다. 동일한 작성 스택에서 Ollama을 별도의 서비스로 실행하고 Hermes를 http://ollama:11434(Docker의 내부 DNS 사용)으로 지정합니다. 컨테이너 내부에서 localhost을 가리키지 마십시오. 호스트 측 Ollama의 경우 서비스 이름 또는 host.docker.internal을 사용하십시오.

Q: Docker 소켓을 Hermes 컨테이너에 마운트해도 안전합니까?

A: 소켓 마운트는 호스트에 대한 루트 근처 권한을 컨테이너에 부여합니다. 모든 작업 부하를 제어하는 ​​단일 사용자 VPS에서는 허용됩니다. 공유 또는 다중 테넌트 환경에서는 소켓 프록시(예: Tecnativa/docker-socket-proxy)를 사용하여 Hermes에 필요한 API 호출만 허용 목록에 추가하세요.

Q: 프로덕션 Hermes 배포를 위한 최소 서버 사양은 무엇입니까?

A: 원격 LLM 공급자(OpenAI/Anthropic)를 사용하면 vCPU 1개 및 2 GB RAM을 사용할 수 있습니다. 자체 호스팅 Ollama 백엔드의 경우 최소 8GB RAM과 합리적으로 최신 CPU가 필요합니다. Oracle의 Ampere A1 무료 등급(4코어, 24GB)은 비용 없이 두 시나리오를 모두 편안하게 처리합니다.

Q: 헤르메스의 학습된 스킬과 기억력은 어떻게 백업하나요?

답변: docker run --rm -v hermes_skills:/data -v $(pwd):/backup busybox tar czf /backup/hermes-skills-backup.tar.gz /data을 사용하세요. 이미지 업데이트 전에 자동 백업을 위해 호스트에서 예약된 크론 작업으로 이를 실행하세요.

최종 생각: 체크리스트 및 다음 단계

학습 루프는 Hermes를 Docker에서 실행한 다른 모든 에이전트와 구분하는 요소입니다. 위의 설정은 실제로 루프를 보장합니다. 축적하다 — 재설정되지 않음 — 업데이트를 제공할 때마다.

프로덕션 준비 배포를 호출하기 전에 다음을 확인하세요.

  • hermes_homehermes_skills에 대해 생성된 명명된 볼륨
  • Compose에 하드코딩되지 않은 .env에 저장된 API 키
  • restart: unless-stopped 정책 활성화
  • 상태 확인 통과: docker inspect hermes-agent --format='{{.State.Health.Status}}'
  • 로그 순환 구성됨(max-size, max-file)
  • 메모리 고갈을 방지하기 위해 설정된 리소스 제한
  • 설정 마법사가 완료되고 첫 번째 채팅 세션이 확인되었습니다.
  • (Mode 2인 경우) Docker 소켓 마운트가 확인되고 소켓 프록시가 고려됩니다.

즉시 가치를 얻기 위한 다음 단계:

  1. 파일 요약, 코드 검토, 웹 조사 등 몇 가지 실제 작업을 실행하여 기술 라이브러리를 구축합니다.
  2. 10~15개의 작업 후에 hermes skills list을 실행하여 학습된 내용을 확인하세요.
  3. 맞춤형 기술 템플릿 및 메모리 튜닝을 다루는 에이전트 구성 문서는 Nous Research GitHub을 검토하세요.
  4. Oracle 무료 등급을 사용 중인 경우 학습된 상태를 유지하면서 다운타임 없는 이미지 업데이트를 위해 cron 기반 docker compose pull && docker compose up -d을 설정하세요.