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
- Ollama : aucun port exposé
- Hermes dans Docker
- Le piège : ce qu'un modèle annonce n'est pas ce qu'on peut utiliser
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.