Top Related Projects
A process for automating Docker container base image updates.
Automatically update running docker containers with newest available image
Monitor and restart unhealthy docker containers.
The lazier way to manage everything docker
Making Docker and Kubernetes management easy.
Quick Overview
Diun (Docker Image Update Notifier) is a CLI application that automatically monitors Docker registries for image updates. It can send notifications through various services when new image versions are detected, helping users keep their Docker environments up-to-date and secure.
Pros
- Supports multiple Docker registries, including Docker Hub, Quay, and private registries
- Offers a wide range of notification options, including email, Slack, Telegram, and more
- Highly configurable with support for custom schedules and filtering options
- Can be run as a standalone binary or as a Docker container
Cons
- Requires careful configuration to avoid excessive notifications or API rate limiting
- May have a learning curve for users new to Docker and container management
- Limited to Docker images; doesn't support other container formats or package managers
Getting Started
- Install Diun using Docker:
docker run -d --name diun \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /path/to/data:/data \
-v /path/to/diun.yml:/diun.yml \
crazymax/diun:latest
- Create a
diun.yml
configuration file:
watch:
schedule: "0 */6 * * *"
firstCheckNotif: false
providers:
docker:
watchByDefault: true
notif:
slack:
webhook: https://hooks.slack.com/services/XXXXXX/XXXXXX/XXXXXX
channelName: docker-updates
-
Customize the configuration to suit your needs, including which images to watch and notification preferences.
-
Start the Diun container, and it will begin monitoring your Docker images for updates according to the specified schedule.
Competitor Comparisons
A process for automating Docker container base image updates.
Pros of Watchtower
- Simpler setup and configuration, with fewer options to manage
- Built-in support for automatic container updates without additional configuration
- Integrates well with Docker Swarm for orchestrated environments
Cons of Watchtower
- Less granular control over update notifications and schedules
- Limited support for custom registries and authentication methods
- Fewer notification options compared to Diun's extensive integrations
Code Comparison
Watchtower configuration (docker-compose.yml):
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 30
Diun configuration (docker-compose.yml):
diun:
image: crazymax/diun:latest
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- TZ=Europe/Paris
- DIUN_WATCH_SCHEDULE=0 */6 * * *
Both Watchtower and Diun are tools for monitoring and updating Docker containers, but they have different focuses. Watchtower is designed for simplicity and automatic updates, making it easier to set up and use out of the box. Diun, on the other hand, offers more advanced features and granular control over notifications and update schedules, making it suitable for more complex environments or those requiring detailed monitoring without automatic updates.
Automatically update running docker containers with newest available image
Pros of Ouroboros
- Simpler setup and configuration process
- Built-in support for Docker Swarm mode
- Ability to update itself automatically
Cons of Ouroboros
- Less flexible notification options
- Limited filtering capabilities for container updates
- Fewer supported container runtimes (primarily focused on Docker)
Code Comparison
Ouroboros configuration example:
version: "3"
services:
ouroboros:
image: pyouroboros/ouroboros
environment:
- INTERVAL=300
- CLEANUP=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Diun configuration example:
watch:
schedule: "0 */6 * * *"
providers:
docker:
watchByDefault: true
notif:
telegram:
token: "xxxxx"
chatIDs:
- "123456789"
Both projects aim to automate container updates, but Diun offers more advanced features and flexibility in terms of providers, notifications, and filtering options. Ouroboros is simpler to set up and use, making it a good choice for basic Docker environments. Diun, on the other hand, provides a more comprehensive solution for complex container ecosystems with diverse runtime environments and notification requirements.
Monitor and restart unhealthy docker containers.
Pros of docker-autoheal
- Simpler setup and configuration
- Focuses specifically on container health checks and automatic restarts
- Lightweight and minimal resource usage
Cons of docker-autoheal
- Limited functionality compared to Diun's comprehensive monitoring features
- Less active development and community support
- Lacks advanced notification options and integrations
Code Comparison
docker-autoheal:
docker run -d \
--name docker-autoheal \
-v /var/run/docker.sock:/var/run/docker.sock \
willfarrell/docker-autoheal
Diun:
version: "3.5"
services:
diun:
image: crazymax/diun:latest
volumes:
- "./data:/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "TZ=Europe/Paris"
- "LOG_LEVEL=info"
- "LOG_JSON=false"
Summary
docker-autoheal is a lightweight solution focused on container health checks and automatic restarts. It's simpler to set up but has limited functionality compared to Diun. Diun offers more comprehensive monitoring features, active development, and advanced notification options. While docker-autoheal is suitable for basic container health management, Diun provides a more robust solution for monitoring Docker image updates and container health across multiple registries and platforms.
The lazier way to manage everything docker
Pros of lazydocker
- Interactive terminal UI for managing Docker containers, images, and volumes
- Provides a more user-friendly and visual approach to Docker management
- Offers real-time monitoring and logs viewing capabilities
Cons of lazydocker
- Focused solely on Docker management, lacking image update notifications
- Requires manual intervention for container updates and management
- May have a steeper learning curve for users new to terminal-based interfaces
Code comparison
lazydocker:
func (gui *Gui) renderMain() error {
mainView := gui.getMainView()
mainView.Clear()
return gui.renderPanelOptions()
}
diun:
func (d *Diun) Check(ctx context.Context) error {
for _, provider := range d.providers {
if err := provider.Check(ctx); err != nil {
return err
}
}
return nil
}
Summary
lazydocker is an interactive terminal UI for Docker management, offering a visual approach to container, image, and volume management. It provides real-time monitoring and log viewing but lacks automated image update notifications.
diun, on the other hand, focuses on Docker image update notifications, automatically checking for updates and notifying users. It's more specialized in its functionality but doesn't offer the comprehensive Docker management features of lazydocker.
The choice between the two depends on the user's specific needs: lazydocker for interactive Docker management or diun for automated image update notifications.
Making Docker and Kubernetes management easy.
Pros of Portainer
- Comprehensive container management with a user-friendly web interface
- Supports multiple container orchestration platforms (Docker, Kubernetes, etc.)
- Offers team management and role-based access control
Cons of Portainer
- More resource-intensive due to its extensive feature set
- Steeper learning curve for users new to container management
- May be overkill for simple container monitoring needs
Code Comparison
Diun configuration (YAML):
watch:
schedule: "0 */6 * * *"
providers:
- docker:
watchByDefault: true
Portainer deployment (Docker Compose):
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
Summary
Diun is a lightweight Docker image update notifier, while Portainer is a comprehensive container management platform. Diun excels in simplicity and focused functionality, making it ideal for users primarily interested in image update notifications. Portainer offers a broader range of features for container orchestration and management, suitable for more complex environments but potentially overwhelming for simpler use cases.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
About
Diun is a CLI application written in Go and delivered as a single executable (and a Docker image) to receive notifications when a Docker image is updated on a Docker registry.
Documentation
Documentation can be found on https://crazymax.dev/diun/
Contributing
Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. If you want to open a pull request, please read the contributing guidelines.
You can also support this project by becoming a sponsor on GitHub or by making a Paypal donation to ensure this journey continues indefinitely!
Thanks again for your support, it is much appreciated! :pray:
License
MIT. See LICENSE
for more details.
Top Related Projects
A process for automating Docker container base image updates.
Automatically update running docker containers with newest available image
Monitor and restart unhealthy docker containers.
The lazier way to manage everything docker
Making Docker and Kubernetes management easy.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot