Aller au contenu principal
Nicolas Cousin Tech SolutionsNicolas Cousin Tech Solutions

Installer Docker, Ollama et Hermes, et le piège du contexte 64K

Assembler Docker, Ollama et Hermes sur le VPS durci, et découvrir qu'un modèle « compatible Ollama » n'est pas forcément exploitable tel quel par un orchestrateur agentique. Troisième article de la série.

Par Nicolas Cousin — Publié le 29 septembre 2026

Installer Docker, Ollama et Hermes, et le piège du contexte 64K

TL;DR

Sur le VPS durci de l'article précédent, j'ai installé Docker, créé un réseau privé pour que les conteneurs communiquent entre eux sans rien exposer publiquement, puis lancé Ollama et Hermes dessus. Premier piège rencontré : un modèle annoncé comme compatible par Ollama ne l'est pas forcément pour un orchestrateur comme Hermes, qui peut exiger un contexte plus large que celui par défaut. Augmenter ce contexte est possible, mais ce n'est pas gratuit.


Sommaire


Un réseau Docker privé, pas d'accès public

Docker et Compose installés, la première chose que je fais avant de lancer le moindre conteneur, c'est créer un réseau dédié :

docker network create agentic

Tous les conteneurs de la stack agentique (Ollama, Hermes, et ce qui viendra ensuite) rejoignent ce réseau. Ils se voient entre eux par leur nom de conteneur, sans qu'aucun port ne soit publié vers l'extérieur. Le VPS durci de l'article précédent (SSH par clé, UFW, Tailscale) reste la seule porte d'entrée ; Docker n'en ouvre pas une deuxième par accident.

Ollama : aucun port exposé

docker run -d --name ollama \
  --network agentic \
  -v ollama-data:/root/.ollama \
  ollama/ollama

Pas de -p dans cette commande, volontairement. Ollama n'est joignable que depuis les autres conteneurs du réseau agentic, à l'adresse http://ollama:11434, résolue par le DNS interne de Docker. Aucun port n'est ouvert sur l'interface publique du VPS. Le volume ollama-data persiste les modèles téléchargés d'un redémarrage de conteneur à l'autre.

Hermes dans Docker

docker run -d --name hermes \
  --network agentic \
  -v ~/.hermes:/opt/data \
  hermes-local

Même logique : Hermes rejoint le réseau agentic et n'expose rien publiquement. Le montage ~/.hermes:/opt/data persiste sa configuration et son historique côté hôte, indépendamment du cycle de vie du conteneur. La communication suit ce chemin :

Hermes → agentic → Ollama:11434

Hermes appelle Ollama par son nom de conteneur sur le réseau privé, jamais par une IP publique.

Le piège : ce qu'un modèle annonce n'est pas ce qu'on peut utiliser

Une fois Ollama et Hermes en place, premier modèle testé, et premier accroc : le contexte était tout simplement trop court pour ce qu'Hermes essayait d'y faire tenir, une fois additionnés system prompt, définitions d'outils et historique de conversation. Un modèle comme qwen2.5-coder:7b a un contexte natif de 32768 tokens du côté d'Ollama, et certaines configurations d'Hermes en réclament davantage pour fonctionner correctement.

« Compatible avec Ollama » ne veut donc pas dire « directement exploitable par l'orchestrateur qui l'appelle ». Le contexte disponible dépend de la manière dont le modèle est chargé, pas seulement de ce que le modèle annonce pouvoir gérer.

La solution existe côté Ollama : créer une variante du modèle avec un contexte étendu via un Modelfile :

FROM qwen2.5-coder:7b
PARAMETER num_ctx 65536
ollama create qwen2.5-coder:7b-64k -f Modelfile

Techniquement, ça fonctionne : la nouvelle variante accepte un contexte de 65536 tokens. Mais ce n'est pas un réglage gratuit. Un contexte plus large consomme davantage de mémoire, et sur un VPS CPU-only comme le mien, chaque token supplémentaire dans le contexte a un coût en temps de calcul. Passer le num_ctx à 64K ne dit rien sur la vitesse à laquelle ce contexte sera réellement traité, ni sur la qualité du résultat une fois qu'on approche de cette limite : « modèle disponible dans Ollama », « contexte configuré » et « modèle réellement exploitable en agentique » restent trois choses différentes, et confondre les deux premières avec la troisième m'a fait perdre du temps que je n'avais pas besoin de perdre.


Docker, Ollama et Hermes tournent maintenant sur le réseau privé agentic, avec un contexte configuré pour tenir la charge. Reste à savoir si ce que j'ai gagné en contexte, je ne l'ai pas perdu en vitesse : direction le premier vrai benchmark, mesures à l'appui.