By Myself

Dozzle | 一键查看所有Docker&Podman容器(container)日志

指南 | Guides 2024年9月21日

First | 首先

Dozzle 是一个轻量级的程序

使用Web界面即可查看所有容器(container)的日志

但请注意:它(Dozzle)是实时的且并不存储任何日志文件

OS&APP Version | 系统&软件版本

OS

Podman

APP

V8.5.1

Start | 开始

Docker cli

首先我们来拉取镜像

docker pull amir20/dozzle:latest

然后我们来运行它

docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest

我们可以看到我们需要做的就是将docker.sock挂载到Dozzle即可
其中映射的端口是host的8080

Podman cli

Docker能干的

Podman当然也可以

因为Podman没有守护进程 相应的也就没有docker.sock

使用podman info命令来检查是否启用了remote socket

remoteSocket:
    exists: true
    path: /run/podman/podman.sock

如果 exists值为true则表示已启用

若remoteSocket并未启用我们可以点击如下链接查看相应指南

https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md

开启了remote socket 后面直接运行使用cli运行即可

podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8080:8080 amir20/dozzle:latest

# 记得将/run/user/1000/podman/podman.sock替换为实际Path

Podman Quadlet

[Unit]
Description=Dozzle is a small lightweight application with a web based interface to monitor Docker logs. It doesn’t store any log files. It is for live monitoring of your container logs only.
After=network-online.target
Wants=network-online.target
Before=shutdown.target

[Container]
AutoUpdate=registry
ContainerName=dozzle
Image=docker.io/amir20/dozzle
Volume=/run/podman/podman.sock:/var/run/docker.sock:ro
PublishPort=127.0.0.1:30001:8080

[Install]
WantedBy=multi-user.target

Use | 使用

▼ 安装完成后打开相应的url即可开始使用Dozzle界面主要包含

  • Host 详情

    • CPU
    • 内存
    • 容器个数
    • Docker&Podman版本
  • 容器详情

    • 名称
    • 运行于哪个主机
    • 状态
    • 创建时间
    • Avg CPU
    • Avg MEM

▼ 点击相应容器即可看到对应log 右上角同步显示当前容器资源使用情况

▼ 此时将鼠标移至右上角还可显示更多选项

  • 下载log
  • 清除log
  • 搜索log

当前版本(v8.5.1)允许在选项当中增加start/stop等选项但默认关闭

可以使用DOZZLE_REMOTE_AGENT环境变量开启此选项

▼ 以下是各启动方式增加此变量的方法

# Docker Cli #

docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle --enable-actions

# Docker compose # 
  services:
  dozzle:
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 8080:8080
    environment: DOZZLE_ENABLE_ACTIONS=true
    

# Podman Quadlet # 

[Unit]
Description=Dozzle is a small lightweight application with a web based interface to monitor Docker logs. It doesn’t store any log files. It is for live monitoring of your container logs only.
After=network-online.target
Wants=network-online.target
Before=shutdown.target

[Container]
AutoUpdate=registry
ContainerName=dozzle
Image=docker.io/amir20/dozzle
Volume=/run/podman/podman.sock:/var/run/docker.sock
PublishPort=127.0.0.1:30001:8080
Environment="DOZZLE_ENABLE_ACTIONS=true"

[Install]
WantedBy=multi-user.target

Ex | 拓展

With Haproxy

如果你使用haproxy做反向代理

▼ 那么主要配置为您呈上

acl  dozzle                 hdr_reg(host)         -i    xxx.xxx

use_backend                 dozzle-s              if    dozzle

backend dozzle-s
    mode http
    server dozzle-s      127.0.0.1:30001

Over | 总结

上述简要了介绍了一下Dozzle的部署和使用过程

实际上Dozzle还有很多功能比如

  • 代理模式(将Dozzle暴露给其他的Dozzle示例)
  • 远程主机
  • SQL Engine

在这里就不介绍了 后期如果用到再更新记录

Learn from | 抄袭

同时感谢作者的付出

标签

xzllll

三分钟热度三分钟收获