Docker was habt ihr

McFly2404

Cadet 4th Year
Registriert
Juni 2016
Beiträge
73
Hallo,

Ich habe schon lange einen Docker Server aber ich weis nicht was ich damit noch machen kann und im Internet finde ich leider nichts passendes für mich

bei mir läuft zurzeit:

Open VPN
Gitlab
Gitlab Runner
Wake on Lan
Portainer
Nextcloud
Zentrale MariaDB

einen Password Safe hatte ich schon aber habe ihn eher wenig verwendet.

Also was habt ihr am Laufen oder habt ihr Ideen was man damit noch machen kann


Vielen Dank
 
  • Gefällt mir
Reaktionen: Teuti
Reverse Proxy der automatisch für alle Webdienste Zertifikate holt (nginx, haproxy, traefik), ggf. ne WAF für die Webdienste
 
Wenn du keinen konkreten Bedarf hast... dann lass es doch so? Woher der Zwang weitere Docker-Container aufzusetzen? Nur ums zu haben?
 
  • Gefällt mir
Reaktionen: shoKuu, Raijin, Asghan und 2 andere
Home Assistant, MQTT-Broker (mosquitto), Pi-hole.

Kannst ja auch einfach mal durch die Docker Registry browsen und Ideen sammeln...
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Asghan und Mar1u5
gaym0r schrieb:
Wenn du keinen konkreten Bedarf hast... dann lass es doch so? Woher der Zwang weitere Docker-Container aufzusetzen? Nur ums zu haben?

Du hast nicht Unrecht. Allerdings haben manche Leute Spaß am Basteln mit Technik, auch ohne konkreten Nutzen daraus ziehen zu können. Gibt schlechtere Hobbys als neues Zeug auszuprobieren.

BTT: https://github.com/awesome-selfhosted/awesome-selfhosted
Ist eine sehr umfangreiche Liste von Software zum Selberhosten. Für das meiste gibt es Docker-Container.

EDIT: Was bei mir auf dem Docker läuft:
Plex
Ombi
Gitlab + Runner
Portainer
Heimdall als Dashboard für interne Dienste, aber so richtig warm werde ich nicht damit
Nexus
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: smashcb und ph0be
Keinen. Zu restriktiv. Setze auf Jails und bhyve, und für Clients gibts eine über PXE bereitgestellte Library.
 
Graylog
ELK-Stack
Prometheus
Grafana

Wenn du Langeweile hast und dich mit Monitoring/Logging beschäftigen willst.
 
RalphS schrieb:
Keinen. Zu restriktiv.
Wo ist Docker zu restriktiv? Natürlich, wenn man nicht nur Anwendungen laufen lassen will, sondern ganze Systeme, dann ist es zu restriktiv, ja. Aber für mehr als "Anwendung x deployen" wird es kaum genutzt und ist auch nicht wirklich das Anwendungsgebiet.

Kennt jemand ein gutes (Web!) Monitoring Tool? Ich such eigentlich was Ähnliches wie statping, nur auf einzelne Dienste ausgerichtet. Also nicht nur ob ein Server online ist, sondern auch ob der richtige Response zurück kommt. HTTP, IMAP, IMAPS, SMTP, SMTPS, SSH, FTP, TeamSpeak und was noch so anfällt. Am besten durch Plugins erweiterbar und in einer Sprache, die man sprechen kann (nicht Python). Grafana und Co. liefern mir zu viel Schwachsinn, weil ich prinzipiell nicht den Server selbst monitoren will, sondern dessen Dienste.

Ähnlich sowas wie https://steamstat.us/.

Was mir auch fehlt ist ein Nginx Reverse Proxy im Container mit Support für Container in separaten Netzwerken. Traefiks Config find ich furchtbar.

Bei mir laufen diese Dienste:
Code:
bind_bind
bitwarden_bitwarden
gitlab_gitlab
jdownloader_jdownloader
mailu_admin
mailu_antispam
mailu_antivirus
mailu_front
mailu_imap
mailu_mysql
mailu_redis
mailu_smtp
mailu_webdav
mailu_webmail
nextcloud_db
nextcloud_nextcloud
plex_plex
teamspeak_app
teamspeak_audiobot
teamspeak_web
terminal-sexy_app
freshrss_app
freshrss_db
 
@Yuuri Bzgl. Reverse Proxy kannst dir ja mal https://github.com/nginx-proxy/nginx-proxy ansehen. Nutze ich privat und jedes einzelne (Web-)Projekt, sprich docker-compose) ist in separaten nicht direkt erreichbaren Docker Networks und der Proxy vermittelt.
Beim Monitoring würde ich jetzt spontan an checkmk oder icinga2 denken. Damit kannst problemlos Mailversand/-empfang prüfen, Webserver inkl. basic auth und erwarteter Response Codes, Status von Zertifikaten und wann diese ablaufen, usw. Klassisches Monitoring per Agent ob die jeweiligen Dienste laufen ist damit natürlich auch möglich. Plugins sind haufenweise dabei oder werden angeboten. Eigene kannst auch in beliebiger Sprache deiner Wahl schreiben solange das Output Format passt, zumindest bei checkmk.
Aber wie so oft gilt: Die meisten simplen Lösungen sind am Ende doof weil man alles selbst machen muss um ein Ergebnis zu haben und die meisten "fertigen" Lösungen sind doof weil sie zu viel liefern und man ungewolltes wegfiltern muss...
 
@Yuuri ”zu restriktiv“ im Sinne von vorkonfiguriert. Mit sowas kann ich nichts anfangen. Plus, “irgendwer” hat was “irgendwie“ hingehustet. Exakt was... müßte man erst rauskriegen.

Für eine simple Funktionsdemo, gerne. Aber nicht mehr.
 
snaxilian schrieb:
Bzgl. Reverse Proxy kannst dir ja mal https://github.com/nginx-proxy/nginx-proxy ansehen.
Hab ich schon entdeckt, ich will mir aber nicht die Umgebungsvariablen dafür versauen, welche sich z.T. ja auch mit dem Projekt überschneiden können. Docker hat dafür extra eine Label-Sektion eingeführt, nur wird diese leider kaum verwendet. Als Fork gibts davon https://github.com/adi90x/rancher-active-proxy (Issue #172), was mit Labels arbeitet, allerdings spielt das wohl nur mit Rancher zusammen. Irgend ne Fehlermeldung hab ich da bekommen, von wegen dass irgendwelche "metadata" nicht gefunden wurde oder so und der Container dann unnütz ist.
snaxilian schrieb:
Beim Monitoring würde ich jetzt spontan an checkmk oder icinga2 denken.
Sieht schon mal vielversprechender aus, schau ich mir demnächst an. Danke.
snaxilian schrieb:
Aber wie so oft gilt: Die meisten simplen Lösungen sind am Ende doof weil man alles selbst machen muss um ein Ergebnis zu haben und die meisten "fertigen" Lösungen sind doof weil sie zu viel liefern und man ungewolltes wegfiltern muss...
Wie wahr, wie wahr... Bin mit FreshRSS auch nicht zufrieden, aber noch am Glücklichsten im Gegensatz zu tt-rss (selbst damit nen Docker Container aufsetzen ist ne Qual...), selfoss, miniflux, CommaFeed usw.
RalphS schrieb:
”zu restriktiv“ im Sinne von vorkonfiguriert. Mit sowas kann ich nichts anfangen. Plus, “irgendwer” hat was “irgendwie“ hingehustet.
Gut, das ist aber eher ein allgemeines Problem, dass von irgendwo irgendwelcher Code ausgeführt wird. In Projekten wird ja teilweise auch jeglicher Mist aus NPM Packages geladen, die dann teilweise Malware enthalten. Im Docker Hub siehst du allerdings bei den meisten Projekten das Dockerfile selbst oder es sind genügend Links zu Github verlinkt, wo man das Dockerfile einsehen kann. Alternativ gibts noch dive, womit man von Images das Dockerfile einsehen kann. Projekte ohne Dockerfile schließe ich aber auch kategorisch aus. All zu komplex sind die Dockerfiles aber auch nicht, weshalb man das relativ fix reviewen kann.

Ich nutz bspw. auch nie fertige Images von kleinen Projekten oder Einzelpersonen (außer zum Test), sondern zieh sie mir immer lokal ins Projekt, schau drüber, bau den Container dann selbst und push sie in meine eigene Gitlab Docker Registry zum Projekt. Anders sieht es bei Base-Images wie ubuntu, alpine, nginx, apache, mysql, redis und Co. aus. Die nutz ich natürlich, weil die entsprechenden Projekte ne hohe Reputation haben und ich denen auch entsprechend vertraue.

Ich bezweifel allerdings, dass Jails eine entsprechend hohe Reproduzierbarkeit besitzen wie Container Images. Wenn ich ein Projekt umziehen muss, muss ich nur die Daten verschieben und er läuft 1:1 wie vorher. Serverwechsel sind somit das Unproblematischste überhaupt und ich hab nur die Daten der Anwendung vorliegen.

Bei mir läuft soweit eigentlich jeder Dienst als Container, bis auf SSH, SMB und ein Nginx Reverse Proxy. Certbot pack ich grad in ein Image neben meinem Nameserver um automatisch Wildcard-Zertifikate ausstellen zu können, dann bin ich die Abhängigkeit auch vom Host los. Mich nervt aktuell eigentlich nur noch, dass PHP, Python (u.a. von Certbot) und Ruby auf dem Host installiert sind und ich somit noch nich ganz abhängigkeitenfrei bin... Aber einen Tod muss man leider sterben. Sosnt ist nur das Minimum vom Ubuntu Server installiert, plus kleine Tools für die Shell wie ZSH und Linuxbrew.

Sicherheitstechnisch ist auch alles ausreichend i.O., denn durch User Namespacing laufen die Container auch nie als root. Ebenso ist jedes Projekt in seinem eigenen Subnetz und kein Container hat bei mir irgendwelche Capabilities oder auf den Host Zugriff.
 
Naja, ich sag mal, ein Jail ist ja auch eine vollständige, bootfähige Umgebung, außer man hat sie händisch nachbearbeitet. Unterschied ist, daß es einen Kernel gibt (normalerweise) aber dieser nicht genutzt wird (stattdessen wird der aktuell gebootete Kernel re-entrant vrewendet.
Konfigdatei dazu - bzw Eintrag in einer -- und das Ganze kann getar+xz'd und verteilt werden. Ja, Jails laufen nur auf BSD - andererseits kann BSD aber keine Dockerimages halten (nur als Client).

Rückblickend... würd ich sagen wäre es schön gewesen, komplexere Konfigurationen als Referenz zu haben. Aber dummerweise hab ich insbesondere für sowas auch nur "banale" Möchtegern - Etwasse finden können.
FreeRadius, nagios/icinga und sowas erlauben und teilweise erfordern so viel Fingerfaß, daß man da als Neuling erstmal vor dem berüchtigten Uhrwerk steht. Ich weiß noch wie lang ich gebraucht hab bis ich FreeeRadius soweit begriffen hatte, daß ich WPA-E darüber implementieren konnte. Es geht -- aber es ist eben auch keine Sache von Haken hier, Konfigeintrag da; es kommt vieles zusammen, was auch zusammenpassen muß.
Ähnliches bei nagios und icinga. Da kann man simpelst anfangen, aber interessante Dinge (die auch alle möglich sind!) werden schnell sehr komplex und man muß an gefühlt zehn verschiedenen Stellen anfassen, bevor man sein Modell umgesetzt hat (jedenfalls dann, wenn man frisch von vorn anfängt).

Also ja, eine Referenzimplementierung eines Services gerne, sodaß man erstmal eine Idee bekommt, was damit geht. FreeRadius allein kann so wahnsinnig viel, daß man sehr leicht erschlagen werden kann... und dann schon gar nicht mehr den Wald vor Bäumen sieht, wenn es um die Umsetzung eines konkreten Anwendungsfalls geht.

Aber eben nur als Referenz, zum Anschauen was machbar ist, und wie dies umgesetzt wurde: als "Wegweiser" für eigene Implementierungen, aber nicht als Ersatz für diese.
 
@madmax2010 Zu podman hätte ich mal die ein oder andere Frage: So wie ich das verstehe soll es ja ein drop-in replacement für docker sein, das ohne diesen komischen UNIX-socket auskommt (was ja wegen Sicherheitsaspekten und Benutzerfreundlichkeit zu begrüßen wäre). Das bedeutet ja aber auch, dass so Meta-Container wie portainer und der GitLab-Runner mit docker-executor nicht mehr wie gewohnt funktionieren, da die ja eben diesen Socket brauchen?
 
Zurück
Oben