Skip to content

附加到容器并执行命令

DockerK8s

Dozzle 支持附加到容器或在容器内执行命令。它提供了一个基于网页的界面来与 Docker 容器交互,用户可以直接在浏览器中附加到运行中的容器并执行命令。这个功能在调试和排查容器化应用问题时特别有用。由于可能带来安全风险,该功能默认是关闭的。要启用它,请把 DOZZLE_ENABLE_SHELL 环境变量设为 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

终端访问应当适用于所有类型的容器,包括 Docker、Kubernetes 以及其他编排平台。

安全性

任何能访问 Dozzle 界面的人都能在你的容器里打开一个终端,效果等同于 docker exec。在可公开访问的 Dozzle 上启用 --enable-shell 之前,请先为它加上认证。基于角色的权限可以把终端访问限制给特定用户。

Kubernetes

在 k8s 模式下,终端访问走 Kubernetes API,而不是 docker exec。目标 pod 中必须有可执行的 shell(/bin/sh/bin/bash 等),基于 FROM scratch 构建的极简镜像或不带 shell 的 distroless 镜像无法附加。

基于 MIT 许可证发布。开源项目,由 Docker OSS 赞助。