Conectarse y ejecutar comandos de shell
DockerK8sDozzle permite conectarse a un contenedor o ejecutar comandos dentro de él. Ofrece una interfaz web para interactuar con los contenedores de Docker, de modo que puedes engancharte a contenedores en ejecución y ejecutar comandos directamente desde el navegador. Es especialmente útil para depurar y resolver problemas en aplicaciones en contenedores. Esta función está desactivada por defecto porque puede suponer un riesgo de seguridad. Para activarla, define la variable de entorno DOZZLE_ENABLE_SHELL como true.
docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle --enable-shellservices:
dozzle:
image: amir20/dozzle:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8080:8080
environment:
DOZZLE_ENABLE_SHELL: trueNOTE
El acceso a la shell debería funcionar con todos los tipos de contenedor, incluidos Docker, Kubernetes y otras plataformas de orquestación.
Seguridad
Cualquiera que pueda llegar a la interfaz de Dozzle podrá abrir una shell dentro de tus contenedores, lo que equivale a un docker exec. Antes de activar --enable-shell en un Dozzle accesible públicamente, ponlo detrás de autenticación. Los permisos por rol permiten restringir el acceso a la shell a determinados usuarios.
Kubernetes
En modo k8s, el acceso a la shell usa la API de Kubernetes en lugar de docker exec. El pod de destino debe incluir una shell ejecutable (/bin/sh, /bin/bash, etc.). Las imágenes mínimas construidas FROM scratch o las imágenes distroless sin shell no admiten la conexión.