From 28f8f665f7dd1c66395fd5eefc0e579f87b74975 Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Sun, 30 Aug 2026 14:17:38 +0800 Subject: [PATCH] docs: template creation how-to for iol-runner nodes API/Web-UI creation steps, a field table with the extra_volumes=/tmp footgun, and a 3-step verification checklist. --- docs/features/iol-runner-docker.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/docs/features/iol-runner-docker.md b/docs/features/iol-runner-docker.md index 08d5a215c..ddd0178ec 100644 --- a/docs/features/iol-runner-docker.md +++ b/docs/features/iol-runner-docker.md @@ -78,6 +78,10 @@ graph LR ## Template +Create the template once via `POST /v3/templates` (authenticated — see the +API docs for the auth flow), or in the Web UI under +*Edit → Preferences → Docker templates → New* with the same fields: + ```json { "name": "IOS-XE 17.18.02 IOL", @@ -93,8 +97,23 @@ graph LR } ``` -`/config` and `/tmp/run` are auto-added even if omitted; listing `/config` -keeps the template self-documenting. +| Field | Value | Why | +|---|---|---| +| `environment` | `GNS3_IOL_RUNNER=1` | The switch that selects `IOLDockerVM` (skip-init, unix-socket NIO, auto volumes). Optional: `GNS3_IOL_MEMORY=` (default 2048). | +| `extra_volumes` | `["/config"]` | `/tmp/run` is auto-added. **Never add `/tmp`** — it would persist the socket directory into the projects tree and uBridge would reject the too-long AF_UNIX path. | +| `memory` | IOL memory + ~512 MB | Caps the whole container; below that the OOM-killer shoots the router. | +| `console_type` | `telnet` | The runner muxes the IOS console onto PID 1 stdio; `docker_exec` is not needed. | +| `adapters` | multiple of 4 | IOL port granularity; interfaces are `Ethernet0/0`-style. | + +### Verify + +1. Drop a node into a project and start it — the console shows the + `Linux Unix (i686)` banner within seconds. +2. `$XDG_RUNTIME_DIR/gns3/unixio//` contains `s00.sock`… (one + pair per adapter). +3. The startup-config lives at + `project-files/docker//tmp/run/config` (interface names + `Ethernet0/0`, not `GigabitEthernet0/0`). ## Server mechanisms