Skip to main content
Jarvis uses Docker to run every major component — model servers, agent orchestrators, and integration services. Understanding how to work with containers lets you inspect what’s running, recover from failures, and deploy updates.

How Jarvis uses Docker

Each node in the brain mesh runs a set of containers tailored to its role:
  • Model serving — Ollama runs as a container on GPU nodes (ai-max, ai-mini-x1), exposing a local inference API
  • Gateway — LiteLLM runs as a container on jarvis-brain, routing requests across nodes and models
  • Agents — Paperclip and Hermes each run in isolated containers with access to the mesh network
  • Automation — n8n runs as a container on dell-micro, handling workflow triggers and notifications
  • Memory — Qdrant and Mem0 run as containers providing vector search and persistent memory
All services are defined in Docker Compose files. You manage them with standard docker and docker compose commands over SSH.

View running containers

1

SSH into the target node

ssh your-user@your-node-hostname
See the SSH guide if you haven’t set up key-based access yet.
2

List all running containers

docker ps
To include stopped containers:
docker ps -a
3

Check container resource usage

docker stats
This shows live CPU, memory, and network usage for every running container. Press Ctrl+C to exit.

Check container logs

docker logs -f container-name
Replace container-name with the actual container name from docker ps. Common Jarvis containers include ollama, litellm, paperclip, hermes, n8n, qdrant.

Restart services

1

Restart a single container

docker restart container-name
The container stops, then starts again with the same configuration. Use this for services that are unresponsive or behaving unexpectedly.
2

Restart all services on a node

Navigate to the directory containing your Compose file, then run:
docker compose restart
3

Stop and start fresh (full cycle)

docker compose down && docker compose up -d
Running docker compose down on a production node stops all services on that node, including model inference and agent orchestration. Make sure no critical tasks are running before you do this. For a single service, prefer docker restart container-name instead.

Deploy new containers

1

Pull the latest image

docker pull image-name:tag
For Jarvis-specific images built locally, rebuild instead:
docker compose build service-name
2

Start the new container

docker compose up -d service-name
Docker Compose recreates the container with the new image while leaving other services untouched.
3

Verify the container is healthy

docker ps --filter "name=service-name"
docker logs --tail 20 service-name
Confirm the container shows Up status and that the logs don’t show startup errors.
Replacing a running container interrupts any in-flight requests it’s handling. For model-serving containers like Ollama or LiteLLM, check that no agents are actively using the node before deploying an update. You can pause agent traffic by temporarily removing the node from the LiteLLM router configuration.

Common container operations

docker exec -it container-name bash

Next steps

Monitoring

Track container health and catch issues before they affect your agents.

SSH access

Set up SSH key access to connect to nodes quickly.

Mesh nodes

Understand which containers run on which nodes and why.

n8n workflows

Automate container health checks and restarts with n8n.