aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/vm/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/modules/vm/README.md')
-rw-r--r--desktop/modules/vm/README.md17
1 files changed, 17 insertions, 0 deletions
diff --git a/desktop/modules/vm/README.md b/desktop/modules/vm/README.md
index 43a3271..1f8481e 100644
--- a/desktop/modules/vm/README.md
+++ b/desktop/modules/vm/README.md
@@ -78,6 +78,23 @@ is constructed: `Virsh.sampling` follows the page, set in the page's
lazily loaded, so a closed page costs one idle process waiting on an event
socket.
+## Containers
+
+Docker containers sit below the VMs, in `Docker.qml`, built the same way:
+the docker CLI, `docker events` running for the whole session, and `docker
+stats --no-stream` on the 2s timer only while the page is up. They are
+grouped by `com.docker.compose.project`, since a compose stack is a dozen
+containers that start and stop together; a container outside a project is a
+group of one. The card dot is green when the whole group runs, yellow when
+part of it does. CPU is docker's own figure, 100% per core.
+
+The event stream is filtered to lifecycle events: health checks emit
+`exec_*` events every few seconds per container, which unfiltered would
+turn the stream into a poll. It dies with the daemon, so it is retried every
+10s. Verbs are start, stop, restart and resume, per container or for the
+whole group by id, so no compose file is needed; nothing removes a
+container.
+
## Two things that bite
**A config with no visible window exits.** The drawer is closed most of the