Docker Miscellaneous
Useful tools for developer and people working in IT.
docker-compose.yml
---
services:
it-tools:
image: 'corentinth/it-tools:latest'
#ports:
# - '8080:80'
restart: unless-stopped
container_name: it-tools
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.it-tools.entrypoints=http"
- "traefik.http.routers.it-tools.rule=Host(`it-tools.local.kptree.net`)"
#- "traefik.http.middlewares.it-tools-https-redirect.redirectscheme.scheme=https"
#- "traefik.http.routers.it-tools.middlewares=it-tools-https-redirect"
- "traefik.http.routers.it-tools.middlewares=secured@file"
- "traefik.http.routers.it-tools-secure.entrypoints=https"
- "traefik.http.routers.it-tools-secure.rule=Host(`it-tools.local.kptree.net`)"
- "traefik.http.routers.it-tools-secure.tls=true"
- "traefik.http.routers.it-tools-secure.tls.certresolver=hurricane"
- "traefik.http.routers.it-tools-secure.service=it-tools"
- "traefik.http.services.it-tools.loadbalancer.server.port=80"
networks:
proxy:
external: true
Remember to add URL to local DNS.
References
CyberChef
The Cyber Swiss Army Knife
CyberChef is a simple, intuitive web app for carrying out all manner of “cyber” operations within a web browser.
docker-compose.yml
---
services:
CyberChef:
image: 'ghcr.io/gchq/cyberchef:latest'
#ports:
# - '8080:80'
restart: unless-stopped
container_name: cyber-chef
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.routers.cyber-chef.entrypoints=http"
- "traefik.http.routers.cyber-chef.rule=Host(`cyber-chef.local.kptree.net`)"
#- "traefik.http.middlewares.cyber-chef-https-redirect.redirectscheme.scheme=https"
#- "traefik.http.routers.cyber-chef.middlewares=cyber-chef-https-redirect"
- "traefik.http.routers.dockge-secure.middlewares=secured@file"
- "traefik.http.routers.cyber-chef-secure.entrypoints=https"
- "traefik.http.routers.cyber-chef-secure.rule=Host(`cyber-chef.local.kptree.net`)"
- "traefik.http.routers.cyber-chef-secure.tls=true"
- "traefik.http.routers.cyber-chef-secure.tls.certresolver=hurricane"
- "traefik.http.routers.cyber-chef-secure.service=cyber-chef"
- "traefik.http.services.cyber-chef.loadbalancer.server.port=80"
networks:
proxy:
external: true
Remember to add URL to local DNS.
References
Dockge
A fancy, easy-to-use and reactive self-hosted docker compose.yaml stack-oriented manager.
docker-compose.yml
---
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
# ports:
# # Host Port : Container Port
# - 5001:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data:/app/data
# If you want to use private registries, you need to share the auth file with Dockge:
# - /root/.docker/:/root/.docker
# Stacks Directory
# ⚠️ READ IT CAREFULLY. If you did it wrong, your data could end up writing into a WRONG PATH.
# ⚠️ 1. FULL path only. No relative path (MUST)
# ⚠️ 2. Left Stacks Path === Right Stacks Path (MUST)
- /mnt/docker_store:/mnt/docker_store
environment:
# Tell Dockge where is your stacks directory
- DOCKGE_STACKS_DIR=/mnt/docker_store
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
#- "traefik.http.routers.dockge.entrypoints=http"
#- "traefik.http.routers.dockge.rule=Host(`dockge.local.kptree.net`)"
#- "traefik.http.routers.dockge-secure.middlewares=https-redirectscheme@file"
#- "traefik.http.routers.dockge-secure.middlewares=middlewares-secure-headers@file"
- "traefik.http.routers.dockge-secure.middlewares=secured@file"
- "traefik.http.routers.dockge-secure.entrypoints=https"
- "traefik.http.routers.dockge-secure.rule=Host(`dockge.local.kptree.net`)"
- "traefik.http.routers.dockge-secure.tls=true"
- "traefik.http.routers.dockge-secure.tls.certresolver=hurricane"
- "traefik.http.routers.dockge-secure.service=dockge"
- "traefik.http.services.dockge.loadbalancer.server.port=5001" # make sure the loadbalancer is the last line!!!
networks:
proxy:
external: true
Remember to add URL to local DNS.
References
Grafana
Grafana is an open-source analytics platform that makes visualizing your data an easy process. The tool can even send you alerts based on the data it has processed. It has become a tool that is often utilized in monitoring stacks.
References
Loki - Logging
Loki is Grafana’s log aggregation component.
My first attempt at using Loki caused my Docker to fail!. I have not tried since.
References
watchtower
With watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry.
Watchtower seems to be no longer supported.
Watchtower automatically updates all containers, which can break operation on some updates. It does seem to allow option not to update some containers.
watchtower can be run with
$ docker run --detach \
--name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower
WUD
WUD (What's up Docker) seems to be a more functional replacement of Watchtower. It seems to be more complext to use and has a Web page front end.
reference
-
-
See watchtower
container selection on how to use labels in containers to make watchtower explicitly exclude, include or monitor only.
-
netbox
Netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool.
reference