Saltar al contenido principal

Modos y ajustes

docker-mcp lee sus ajustes una vez, al arrancar: como variables de entorno, o como opciones de la extensión en un agente hecho con agent-kit o en Claude Code. Para cambiarlos hay que reiniciarlo.

Modos​

El modo decide qué herramientas existen. Una herramienta que el modo no permite no se le ofrece al agente, así que no se puede usar por error ni convencerle de usarla.

ModoQué puede hacer el agente
readSolo mirar: listar e inspeccionar contenedores, imágenes, volúmenes y redes, leer logs, ver qué consumen y qué ejecutan los contenedores, el estado de los proyectos de Compose y de los laboratorios, la información de Docker y su uso de disco
labSolo laboratorios: arrancarlos, usarlos, comprobarlos, reiniciarlos y pararlos, con las reglas de abajo; solo ve los contenedores de los laboratorios
full (por defecto)Todo lo que hace Docker. Borrar cualquier cosa se marca como destructivo, así que el agente lo confirma antes, y un contenedor con opciones peligrosas necesita tu sí explícito

Subir una imagen a un registro usa el login que hiciste tú con docker login: el agente nunca te pide tu contraseña ni tu token, y si no hay login te dice qué ejecutar en tu propio terminal.

Las opciones peligrosas son: un contenedor privilegiado, la red, los procesos o el IPC del equipo, capacidades extra, dispositivos, y montar el socket de Docker, la carpeta raíz del equipo o tu carpeta personal. Con cualquiera de ellas, run_container se niega hasta que el agente te lo pregunta y vuelve a llamar diciendo que has aceptado.

Áreas​

DOCKER_MCP_SCOPES reduce un modo a algunas áreas, separadas por comas: containers, images, volumes, networks, compose, system, labs. Por ejemplo, containers,compose en modo full deja solo esas herramientas (más server_info y check_requirements, que siempre están).

Laboratorios​

Un laboratorio es una carpeta dentro de la carpeta de laboratorios con un compose.yaml (o compose.yml, docker-compose.yaml) y, si se quiere, un lab.json con su comprobación:

{ "check": { "service": "web", "command": "curl -fs http://localhost/ | grep -q 'Hola'" } }

La comprobación se ejecuta dentro del servicio y pasa cuando termina con código 0: para un docente, si un enunciado o una solución funcionan; para un alumno, si su práctica funciona.

Antes de arrancar un laboratorio se revisa su compose.yaml. Se rechaza, con todos los problemas enumerados, si un servicio es privilegiado, añade capacidades o dispositivos, usa la red, los procesos o el IPC del equipo, monta algo de fuera de la carpeta del laboratorio o el socket de Docker, se construye desde fuera de la carpeta, o usa una imagen que no está entre las permitidas. Un laboratorio que cumple las reglas funciona como su propio proyecto de Compose, con límites de CPU, memoria y procesos, sin privilegios nuevos y, salvo que lo permitas, sin internet: sus servicios se ven entre sí y nada más, y tu ordenador tampoco llega a sus puertos, así que las comprobaciones se hacen desde dentro.

Los laboratorios existen también en modo full, con las mismas reglas.

Ajustes​

VariableOpción de la extensiónQué hacePor defecto
DOCKER_MCP_MODEmoderead, lab o fullfull
DOCKER_MCP_SCOPESscopesLas áreas, separadas por comastodas
DOCKER_MCP_LABS_DIRlabs_dirLa carpeta de laboratorioslabs en su carpeta de datos
DOCKER_MCP_ALLOW_INTERNETallow_internetLos laboratorios salen a internet (y publican puertos)no
DOCKER_MCP_CPUScpusCPU por servicio de un laboratorio1
DOCKER_MCP_MEMORYmemoryMemoria por servicio de un laboratorio512m
DOCKER_MCP_PIDSProcesos por servicio de un laboratorio256
DOCKER_MCP_ALLOWED_IMAGESallowed_imagesImágenes que puede usar un laboratorio, separadas por comascualquiera

Un valor que la aplicación deja como ${user_config…} sin expandir (Codex no tiene ajustes de plugins) cuenta como no puesto.