Skip to content

Conectarse y ejecutar comandos de shell

DockerK8s

Dozzle 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.

sh
docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle --enable-shell
yaml
services:
  dozzle:
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 8080:8080
    environment:
      DOZZLE_ENABLE_SHELL: true

NOTE

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.

Publicado bajo la licencia MIT. Código abierto y patrocinado por Docker OSS.