delonix serve docker-api
Fatia da API Docker Engine, num socket unix — ciclo de vida completo de um container, não só leitura.
A slice of the Docker Engine API, on a unix socket — full container lifecycle, not just reads.
Serve o suficiente da API real do Docker Engine (protocolo capturado ao vivo
contra um docker CLI real, versão negociada via o header Api-Version da
resposta ao /_ping) para docker version/ps/images/
info apontados via DOCKER_HOST=unix://<socket> funcionarem contra o
estado REAL do delonix. Desde a v0.26.0, também o ciclo de vida completo de um container —
POST /containers/create|start|stop|kill|wait|restart|rename,
DELETE /containers/{id}, GET /containers/{id}/json — todos a delegar nas
mesmas funções do CLI (cmd_run/cmd_stop/cmd_kill/...), zero
lógica duplicada; é o suficiente para docker compose up apontado a este socket
funcionar. Mesma postura de segurança do socket de gestão: 0600 + SO_PEERCRED (só o
próprio utilizador). Fora de escopo: exec/attach interactivo (HTTP hijacking);
HostConfig.RestartPolicy é servido (o arranque corre num processo novo, onde o supervisor é seguro);
qualquer rota não implementada dá 404 claro.
Serves enough of the real Docker Engine API (protocol captured live against a
real docker CLI, version negotiated via the Api-Version header on the
/_ping response) for docker version/ps/images/
info pointed at DOCKER_HOST=unix://<socket> to work against
delonix's REAL state. Since v0.26.0, also the full container lifecycle —
POST /containers/create|start|stop|kill|wait|restart|rename,
DELETE /containers/{id}, GET /containers/{id}/json — all delegating to
the same CLI functions (cmd_run/cmd_stop/cmd_kill/...), zero
duplicated logic; enough for docker compose up pointed at this socket to work. Same
security posture as the management socket: 0600 + SO_PEERCRED (owner only). Out of
scope: interactive exec/attach (HTTP hijacking) and --restart (needs a
raw fork() supervisor, refused with a clear error); any unimplemented route gives a
clear 404.
📄 Implementação real em Rust: cmd/dockerapi.rs
Usage: delonix serve docker-api [OPTIONS]
Options:
--addr <ADDR>
Socket address (default: `$DELONIX_DOCKER_ADDR` or `unix:///run/delonix-docker.sock`)
--l18n <en|pt>
Output language: `en` (default) or `pt` (Portuguese, pt_AO). Also settable via `$DELONIX_L18N`. Global — works before any subcommand
--matrix
Print the coverage matrix and exit, without serving anything. This layer is a SLICE of the Docker API, and third-party tooling deserves to know where it ends before it hits a 404 mid-run
-h, --help
Print help (see a summary with '-h')
EXAMPLES:
# answer `docker ps`/`images`/`info` and the container lifecycle on a unix
# socket
delonix serve docker-api
# a socket of your own, then `export
# DOCKER_HOST=unix:///tmp/delonix-docker.sock`
delonix serve docker-api --addr unix:///tmp/delonix-docker.sock
# see where the slice ends before third-party tooling hits a 404 mid-run
delonix serve docker-api --matrix
SEE ALSO:
delonix serve api · delonix compose up · delonix container ps · delonix
compatibility docker
delonix › serve › docker-apiExemplosExamples
delonix serve docker-api &DOCKER_HOST=unix:///run/delonix-docker.sock docker psDOCKER_HOST=unix:///run/delonix-docker.sock docker compose up -dLaboratórioLab
Aponta o próprio docker CLI para o delonix, sem Docker
Desktop nenhum instalado.
delonix serve docker-api --addr unix:///tmp/delonix.sock &
DOCKER_HOST=unix:///tmp/delonix.sock docker ps
DOCKER_HOST=unix:///tmp/delonix.sock docker run -d --name web nginxPoint the real docker CLI at delonix, with no Docker
Desktop installed at all.
delonix serve docker-api --addr unix:///tmp/delonix.sock &
DOCKER_HOST=unix:///tmp/delonix.sock docker ps
DOCKER_HOST=unix:///tmp/delonix.sock docker run -d --name web nginxDesafioChallenge
Aponta um docker-compose.yml real para o mesmo
socket (DOCKER_HOST=unix://... docker compose up) e confirma que funciona de ponta a
ponta contra o delonix.
Point a real docker-compose.yml at the same socket
(DOCKER_HOST=unix://... docker compose up) and confirm it works end to end against
delonix.