Normale Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.
Ältere BeiträgeBlogs

MQTT-Broker Mosquitto als Docker Container installieren

Von: Benni
26. Januar 2024 um 20:48

Ein MQTT-Broker ist die Schnittstelle zwischen vielen IoT-Sensoren und Geräten, die Sensordaten auswerten oder Aktoren steuern. Das MQTT-Protokoll ist offen und sehr weit verbreitet. Es findet in der Industrie Anwendungen, ist aber auch in Smart Homes ist MQTT weit verbreitet.
MQTT ist ein sehr schlankes und schnelles Protokoll. Es wird in Anwendungen mit niedriger Bandbreite gerne angewendet.

MQTT funktioniert, grob gesagt, folgendermaßen: IoT-Geräte können Nachrichten versenden, die von anderen IoT-Geräten empfangen werden. Die Vermittlungsstelle ist ein sogenannter MQTT-Broker. Dieser empfängt die Nachrichten von den Clients. Gleichzeitig können diese Nachrichten von anderen Clients abonniert werden. Die Nachrichten werden in sog. Topics eingestuft, die hierarchisch angeordnet sind, z.B. Wohnzimmer/Klima/Luftfeuchtigkeit.

Home Assistant, oder ein anderer Client, kann diesen Topic abonnieren und den Nachrichteninhalt („Payload„) auswerten (z.B. 65%).

Home Assistant OS vs. Home Assistant Container

In Home Assistant OS und Supervisor gibt es ein Addon, das einen MQTT-Broker installiert. Das ist sehr einfach, komfortabel und funktioniert wohl recht zurverlässig. In den Installationsarten Home Assistant Container und Core gibt es diese Möglichkeit nicht. Hier muss man manuell einen MQTT-Broker aufsetzen.

In diesem Artikel beschäftige ich mich damit, wie man den MQTT-Brocker Mosquitto über Docker installiert. Anschließend zeige ich, wie man die Konfigurationsdatei gestaltet und eine Verbindung zu Home Assistant herstellt. Das Ergebnis ist dann ungefähr so, als hätte man das Addon installiert. Los gehts!

Schritt für Schritt: MQTT-Broker Mosquitto mit Docker installieren

Als MQTT-Broker verwende ich die weit verbreitete Software Mosquitto von Eclipse. Dieser wird auch von Home Assistant bevorzugt und ist derjenige Broker, den das Addon installieren würde.
Für diese Anleitung wird vorausgesetzt, dass Docker bereits installiert ist und eine SSH-Verbindung zum Server hergestellt werden kann.

Schritt 1: Zunächst erstellen wir ein paar Ordner, die wir später benötigen. Mosquitto wird später so konfiguriert, dass in diese Ordner alle wichtigen Dateien abgelegt werden. Dadurch kann man auf dem Filesystem des Servers Mosquitto konfigurieren und beobachten.

$ mkdir mosquitto
$ mkdir mosquitto/config 
$ mkdir mosquitto/data 
$ mkdir mosquitto/log

Schritt 2: Nun wird die Konfigurationsdatei für Mosquitto erstellt. Über diese Datei kann man das Verhalten von Mosquitto steuern.

$ nano config/mosquitto.conf
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
password_file /mosquitto/config/mosquitto.passwd
allow_anonymous false
listener 1883

Schritt 3: Mit dem folgenden Befehl lädt man sich das aktuelle Image von Eclipse Mosquitto auf den Server.

$ docker pull eclipse-mosquitto

Schritt 4: Mit dem folgenden Befehl wird der Docker-Container gestartet. Das ist der Schlüsselmoment, jetzt muss alles klappen.

$ docker run -it -p 1883:1883 -p 9001:9001 --name mosquitto -v /home/pi/mosquitto/config:/mosquitto/config -v /home/pi/mosquitto/data:/mosquitto/data -v /home/pi/mosquitto/log:/mosquitto/log eclipse-mosquitt

Die Flags bedeuten hierbei folgendes:

  • -p 1883:1883 Der genannte Port ist die Standardeinstellung für MQTT. Alles was auf diesen Port am Server ankommt, wird in den Mosquitto-Container geleitet.
  • -p 9001:9001 Über diesen Port laufen die Websocket-Anwendungen. Falls das nicht benötigt wird, kann man das weg lassen
  • name mosquitto Über diesen kurzen Namen können wir den Docker-Container steuern
  • -v <filesystem-Pfad>:<Container-Pfad> Die in Schritt 1 erstellten Ordner werden in den Container eingebunden

Wer lieber Docker Compose verwendet, trägt diesen Eintrag in seine *.yaml ein:

services:
    eclipse-mosquitto:
        stdin_open: true
        tty: true
        ports:
            - 1883:1883
            - 9001:9001
        restart: unless-stopped
        container_name: mosquitto
        volumes:
            - /home/pi/mosquitto/config:/mosquitto/config
            - /home/pi/mosquitto/data:/mosquitto/data
            - /home/pi/mosquitto/log:/mosquitto/log
        image: eclipse-mosquitto

Schritt 5: Checken, ob der Container ordnungsgemäß läuft. In der folgenden Liste sollte eine Zeile mit dem Mosquitto-Docker auftauchen. Dieser sollte außerdem „up“ sein. Falls nicht, nochmal versuchen den Container zu starten und kontrollieren, ob er läuft.

$ docker container ls -a
CONTAINER ID   IMAGE          COMMAND   CREATED        STATUS        PORTS    NAMES
xxxxxxxxx   eclipse-mosquitto "/init"   3 minutes ago   Up 2 minutes  [...]   mosquitto

Schritt 6: Sehr gut, der Container läuft. Es wird dringend empfohlen, den MQTT-Broker so abzusichern, dass nur angemeldete User darauf zugreifen können. Das ist ja schon in Schritt 2 in die Konfigurationsdatei geschrieben worden. Mit dem folgenden Befehl melden wir uns in der Shell innerhalb des Containers an und erstellen einen Benutzer. In diesem Beispiel mosquitto. Im Anschluss an diesen Befehl wird man zweimal gebeten, das Passwort für den User festzulegen. Ist das geschafft, läuft der MQTT-Broker auf dem Server. Herzlichen Glückwunsch!

$ docker exec -it sh // öffnet die Shell innerhalb des Dockers
mosquitto_passwd -c /mosquitto/config/mosquitto.passwd mosquitto

Optional Schritt 7: Den MQTT-Broker bindet man in Home Assistant ein, indem man auf EinstellungenGeräte und Dienste+ Integration hinzufügen klickt. Im Suchfenster nach „MQTT“ suchen und die Zugangsdaten eingeben.
Die Server-Adresse findet man übrigens am schnellsten über ifconfig heraus.

The post MQTT-Broker Mosquitto als Docker Container installieren first appeared on bejonet - Linux | Smart Home | Technik.

MongoDB-Beispieldatenbanken für Docker einrichten

27. November 2023 um 07:51

Aktuell setze ich mich ein wenig mit MongoDB auseinander und habe mir lokal mit Docker eine Test-Installation eingerichtet:

docker run --name mongo -d mongodb/mongodb-community-server:latest

docker exec -it mongo mongosh

  Using MongoDB: 7.0.3
  Using Mongosh: 2.1.0

test> ...

Je nachdem, wie Sie Docker installiert haben, müssen Sie sudo vor jedes docker-Kommando stellen.

Zum Kennenlernen hätte ich nun gerne ein paar Beispieldatenbanken. Und tatsächlich stellt Mongo für sein Cloud-Angebot Atlas eine ganze Palette von Testdatenbanken zur Verfügung. Eine Kurzbeschreibung der Datenbanken finden Sie hier:

https://www.mongodb.com/docs/atlas/sample-data

Genau die Datenbanken hätte ich gerne in meiner lokalen Installation als »Spielwiese«. Leider ist die Installation dieser Beispieldatenbanken bei der lokalen Verwendung von MongoDB umständlich. Auf GitHub gibt es Dumps (Backups) der Beispieldateien im JSON-Format:

git clone https://github.com/mcampo2/mongodb-sample-databases.git
cd mongodb-sample-databases
lstree sample_*

  sample_airbnb/
    listingsAndReviews.json
  sample_analytics/
    accounts.json
    customers.json
    transactions.json
  sample_geospatial/
    shipwrecks.json
  ...

Jetzt geht es darum, die Datenbanken zu importieren. Unter Linux oder macOS führen Sie dazu für jede JSON-Datei aus samples_xxx ein Kommando nach dem folgenden Muster aus:

cat sample_airbnb/listingsAndReviews.json | \
  docker exec -i mongo mongoimport --db sample_airbnb --collection listingsAndReviews

Beachten Sie, dass Sie docker exec mit der Option -i ausführen müssen (nicht -it wie bisher für den interaktiven Betrieb), damit die Weitergabe von Daten über den Pipe-Operator | funktioniert.

Anstatt nun jede JSON-Datei einzeln zu importieren, bietet sich die Formulierung eines winzigen Scripts an. Er richtet für jedes DB-Verzeichnis sample_xxx eine gleichnamige Datenbank ein und importiert jedes JSON-Dokument als Collection. (Beachten Sie, dass die auf Atlas definierten Indize nicht eingerichtet werden. Wenn Sie zum Testen einen Index brauchen, müssen Sie diesen selbst einrichten.)

#!/bin/sh
for db in sample_*; do
  for file in $db/*.json; do
      collection="$(basename $file .json)"
      cat $file | docker exec -i mongo mongoimport --db $db --collection $collection
  done
done

Das Script muss in dem Verzeichnis ausgeführt werden, in dem sich die von GitHub heruntergeladenen sample_xxx-Verzeichnisse befinden.

Nach dem Import können Sie sich in der Mongo Shell überzeugen, dass alles geklappt hat:

docker exec -it mongo mongosh

test> show dbs

  admin                40.00 KiB
  config               72.00 KiB
  local                40.00 KiB
  sample_airbnb        52.09 MiB
  sample_analytics      9.39 MiB
  sample_geospatial   784.00 KiB
  sample_mflix         28.39 MiB
  sample_supplies     968.00 KiB
  sample_training      61.30 MiB
  sample_weatherdata    2.55 MiB
  samples_airbnb       52.09 MiB
  test                112.00 KiB

test> use sample_airbnb

sample_airbnb> show collections

  listingsAndReviews

sample_airbnb> db.listingsAndReviews.findOne()

 {
    _id: '10009999',
    listing_url: 'https://www.airbnb.com/rooms/10009999',
    name: 'Horto flat with small garden',
    ...
  }

Quellen/Links

Docker Desktop für Linux

09. Juni 2022 um 13:17

Docker Desktop ist eine grafische Benutzeroberfläche zu Docker, die manche administrative Aufgaben erleichtert. Ursprünglich stand das Programm nur für Windows und macOS zur Verfügung. Seit Mai 2022 gibt es den Docker Desktop auch für Linux. Für diesen Blog-Artikel habe ich das Programm unter Ubuntu 22.04 kurz ausprobiert. Soviel vorweg: Aufgrund diverser Nachteile gibt es wenig zwingende Gründe, die für den Einsatz sprechen.

Docker Desktop unter Linux

Installation

Ich habe meine Tests unter Ubuntu 22.04 durchgeführt. Auf dem Rechner waren bisher keine Docker-Pakete installiert. Beachten Sie, dass der Docker Desktop keine Erweiterung zu einer vorhandenen Docker-Installation ist. Vielmehr sollten Sie diese vollständig entfernen, bevor Sie mit der Installation beginnen!

Bevor Sie den Docker Desktop installieren können, müssen Sie die Docker-eigene Paketquelle einrichten (Quelle):

sudo apt update

sudo apt install ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Absurderweise enthält diese Paketquelle zwar diverse Docker-Pakete, nicht aber den Docker Desktop. Den müssen Sie manuell als DEB-Paket von der folgenden Seite herunterladen. (Der Grund für diese umständliche Vorgehensweise sind vermutlich die abweichenden Lizenzen. Der Docker Desktop steht zwar Privatanwendern kostenlos zur Verfügung. Es handelt sich aber nicht um Open-Source-Code. Für den kommerziellen Einsatz sind je nach Unternehmensgröße Lizenzgebühren erforderlich.)

https://docs.docker.com/desktop/release-notes

Das lokal heruntergeladene Paket samt aller Abhängigkeiten installieren Sie nun so:

sudo apt update

sudo apt install Downloads/docker-desktop-4.9.0-amd64.deb

Zum Ende der Installation wird eine Warnung angezeigt, die Sie aber ignorieren können:

N: Der Download wird als root und nicht Sandbox-geschützt durchgeführt, 
da auf die Datei »/home/kofler/Downloads/docker-desktop-4.9.0-amd64.deb« 
durch den Benutzer »_apt« nicht zugegriffen werden kann. 
pkgAcquire::Run (13: Keine Berechtigung)

Betrieb

Im Startmenü bzw. unter Gnome mittels Aktivitäten führen Sie den Docker Desktop nun aus. Der Startvorgang dauert eine Weile. Anschließend können die Kommandos docker und docker compose wie üblich in einem Terminalfenster ausgeführt werden. Docker wurde so eingerichtet, dass das Kommando ohne sudo funktioniert. Den Containern wird standardmäßig eine Netzwerkverbindung in einem privaten Netzwerk in 172.*.*.* zugewiesen.

docker run -it --rm alpine

<alpine># ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN qlen 1000
    link/tunnel6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
16: eth0@if17: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP 
    link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.3/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

Nachdem die Hürden der Installation einmal überwunden waren, hat Docker ausgezeichnet funktioniert. Im Vergleich zur reinen Verwendung des Kommandos docker hilft der Docker Desktop beim Einstieg in die Container-Welt sowie bei der Verwaltung aller jemals ausgeführten Container, aller heruntergeladenen Images sowie der von den Container genutzten Volumes. Wirklich essentiell ist keine dieser Funktionen, aber natürlich erleichtern sie die ersten Schritte.

Interna

Hinter den Kulissen ist für die Ausführung der Docker-Container eine virtuelle Maschine zuständig, die vom Docker Desktop automatisch gestartet wird. Auf meinem Rechner mit 16 GByte RAM und einer CPU mit 4 Cores hat der Docker Desktop für sich knapp 4 GByte RAM und 2 Cores reserviert. Für das Disk Image der Maschine sind 64 GByte vorgesehen. (Anfänglich ist die Datei aber zum Glück wesentlich kleiner.) QEMU-Experten können sich in der Prozessliste die Optionen ansehen, die für die Ausführung der virtuellen Maschine verwendet werden.

ps axu | grep qemu

kofler     40338  3.5 26.0 6470936 4223024 ?     Sl   13:13   0:54 qemu-system-x86_64 -accel kvm -cpu host -machine q35 -m 3962 -smp 2 -kernel /opt/docker-desktop/linuxkit/kernel -append page_poison=1 vsyscall=emulate panic=1 nospec_store_bypass_disable noibrs noibpb no_stf_barrier mitigations=off linuxkit.unified_cgroup_hierarchy=1 vpnkit.connect=tcp+bootstrap+client://gateway.docker.internal:42021/974498b84e0cf777fec14624fda4ca7bb07343ae3bbed05f397d28bbf707b784 vpnkit.disable=osxfs-data console=ttyS0 -initrd /opt/docker-desktop/linuxkit/initrd.img -serial pipe:/tmp/qemu-console1100778794/fifo -drive if=none,file=/home/kofler/.docker/desktop/vms/0/data/Docker.raw,format=raw,id=hd0 -device virtio-blk-pci,drive=hd0,serial=dummyserial -netdev user,id=net0,ipv6=off,net=192.168.65.0/24,dhcpstart=192.168.65.9 -device virtio-net-pci,netdev=net0 -vga none -nographic -monitor none -object memory-backend-memfd,id=mem,size=3962M,share=on -numa node,memdev=mem -chardev socket,id=char0,path=/home/kofler/.docker/desktop/virtiofs.sock0 -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=virtiofs0

Der Docker Desktop samt seiner virtuellen Maschine läuft ohne root-Rechte als Prozess des lokalen Benutzers.

systemctl --user status docker-desktop

  docker-desktop.service - Docker Desktop
     Loaded: loaded (/usr/lib/systemd/user/docker-desktop.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-06-09 13:13:50 CEST; 9min ago
   Main PID: 40088 (com.docker.back)
      Tasks: 157 (limit: 18937)
     Memory: 5.8G


docker version

Client: Docker Engine - Community
 Cloud integration: v1.0.25
 Version:           20.10.17
 API version:       1.41
 ...
 Context:           desktop-linux
 Experimental:      true

Server: Docker Desktop 4.9.0 (80466)
 Engine:
  Version:          20.10.16
  API version:      1.41 (minimum version 1.12)
  ...
 containerd:
  Version:          1.6.4
  GitCommit:        212e8b6fa2f44b9c21b2798135fc6fb7c53efc16
 runc:
  Version:          1.1.1
  GitCommit:        v1.1.1-0-g52de29d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Die Eckdaten der virtuellen Maschine können in der Oberfläche des Docker Desktops verändert werden.

Einstellungen für die virtuelle Maschine, in der die Docker-Container ausgeführt werden

Zukunftsvisionen: »Development Environments« versus »Development Containers«

Spannend ist eine neue Funktion, die aktuell aber erst im Preview-Stadium vorliegt: Development Environments (Link zur Dokumentation) sollen es im Zusammenspiel mit git noch einfacher machen, Testversionen bzw. Entwicklungszweige (git-Branches) im Team auszuprobieren — und das, ohne jedesmal alle möglichen Voraussetzungen manuell einzurichten. Möglicherweise führt das die Idee von gewöhnlichen Containern noch einen Schritt weiter.

Das VSCode-Plugin Remote Containers verfolgt mit Development Containern eine ganz ähnliche Idee (Link). Ob sich eines dieser Konzepte durchsetzen kann, ist aktuell noch nicht absehbar.

Fazit

Die grafische Oberfläche des Docker Desktops bietet Linux-Anwendern den gleichen Komfort wie Entwicklern, die Docker unter macOS oder Windows ausführen. Das ist an sich sehr erfreulich.

Der Docker Desktop enthält allerdings keine wirklich relevanten Funktionen, die nicht schon bisher auf Kommandoebene zur Verfügung standen. Gegen den Einsatz von Docker Desktop sprechen diverse Gründe:

  • Die Installation ist verblüffend umständlich. (Die Docker-Installation war schon immer relativ umständlich, weil nur wenige Distributionen aktuelle Docker-Pakete zur Verfügung stellen. Aber dass Docker Desktop die Sache noch komplizierter macht, ist absurd.)

  • Docker Desktop ist ein Komplettpaket inklusive aller Docker-Tools. Es ersetzt die bisherigen Pakete. Eine Installation des Docker Desktop parallel zu einem schon vorhandenen Docker-Setup ist nicht möglich.

  • Der Docker Desktop verwendet eine virtuelle Maschine zur Ausführung von Containern. Dadurch ergibt sich eine bessere Trennung zwischen dem Host-Rechner und den Docker-Container. Allerdings geht ein wesentlicher Vorteil von Docker unter Linux verloren, nämlich die nahtlose Integration von Docker-Containern in die Prozess- und Speicherverwaltung des Hosts. Der für die virtuelle Maschine reservierte Speicher wird zur Gänze Docker zugeteilt, ganz egal, wie viele oder wenige Container gerade ausgeführt werden. Auf Entwicklungsrechnern mag dieser Ansatz eine gewisse Berechtigung haben. Für das Deployment am Server ist der Docker Desktop definitiv ungeeignet (und auch gar nicht vorgesehen).

  • Weil der Docker Desktop eine virtuelle Maschine benötigt, kann der Docker Desktop nur bei nativen Linux-Installationen genutzt werden — nicht aber, wenn Linux selbst in einer virtuellen Maschine läuft. Vermutlich ist das ein Grund, warum bisher so wenig Testberichte zum Docker Desktop erschienen sind …

  • Der Docker Desktop steht Privatanwendern zwar kostenlos zur Verfügung, es handelt sich aber nicht um ein ein Open-Source-Programm. Der kommerziellen Einsatz ist in großen Unternehmen (>250 Mitarbeiter oder >10 Millionen $ Jahresumsatz) kostenpflichtig.

Quellen/Links

Security Tools: Trivy – Docker Container auf Sicherheitslücken durchsuchen

09. Januar 2022 um 20:17

Container sind nach wie vor in alle Munde. Wer, der Einfachheit halber, mit Docker hantiert, der sollte regelmäßig die Aktualität der verwendeten Images prüfen. Nicht erst seit Log4j verbergen sich unerwünschte Sicherheitslücken in veralteten Images.

trivy

Trivy

Das Open-Source-Tool Trivy bietet die Möglichkeit lokale Images, direkt im Filesystem oder entfernte Repositorys nach Lücken zu scannen. Das Programm scannt unter anderen Base Images wie Alpine, Debian, Ubuntu, CentOS, SUSE, Photon OS, Paketmanager und andere Abhängigkeiten mithilfe der eigenen Schwachstellendatenbank ab.

Die Trivy Datenbank basiert auf NVD und diverser Security Meldungen einzelner Programmiersprachen (siehe).

Installation Trivy Security Scanner Debian/Ubuntu

sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy

Einen Scan mit Trivy anstoßen

Um die Übersicht der Scanergebnisse zu behalten, empfiehlt es sich, die Ausgabe auf kritische Lücken zu beschränken

trivy image --severity HIGH,CRITICAL IMAGENAME

trivy-scan

Das Tool erlaubt es ebenfalls einen HTML Report zu veröffentlichen

trivy image --format template --template "@contrib/html.tpl" -o report.html golang:1.12-alpine

trivy-ergebnisse

Trivy kann auch das Filesystem untersuchen.

trivy fs /path/to/project

Schlussendlich kann auch direkt via GitHub gescannt werden.

trivy repo https://github.com/knqyf263/trivy-ci-test

Fazit

Wer Docker im Einsatz hat, sollte die verwendeten Images regelmäßig auf Sicherheitslücken und Abhängigkeiten prüfen. Der Profi baut seine Images sicher selbst und weiß, was er tut, allerdings übersieht ein DevOp auch dort mal Abhängigkeiten. Auch hier schafft Trivy praktische Abhilfe, denn es lässt ich schnell in CI Workflows, beispielsweise von Gitlab integrieren.

Download

Lazy Docker - schnell und einfach Docker Container via Konsole verwalten

10. April 2020 um 09:31

Um Docker Container zu verwalten, gibt es viele Tools, da wäre zum Beispiel Portainer oder Rancher.

Lazy Docker

Aber es gibt auch schlichte Tools wie Lazy Docker.

lazydocker

Das in Go geschriebene Programm läuft über die Konsole, ist interaktiv und bietet schnellen Zugriff auf die wichtigsten Docker oder Docker Compose Funktionen. Folgende Funktionen werden aktuell (Version 0.8) unterstützt.

  • Zustand der Docker oder Docker Compose Umgebung abfragen
  • Anzeige von Protokollen für einen Container oder Dienst
  • ASCII-Grafiken der CPU- und Speichernutzung von Containern anzeigen
  • Neustart, anhalten, entfernen, oder neu aufbauen von Containern oder Diensten
  • Anzeigen der einzelnen Schichten eines bestimmten Images
  • Aufräumen von Containern, Images oder Volumes mit prune

lazydocker-cpu

Lazy Docker installieren

Die Installation ist sehr einfach und kann direkt über wget oder via brew erledigt werden.

Der Einfachheit halber werde ich den ersten Weg wählen.

Voraussetzung ist eine bestehende und laufende Docker Installation (ansonsten wäre die Nutzung des Programms wenig sinnvoll).

wget https://github.com/jesseduffield/lazydocker/releases/download/v0.18.1/lazydocker_0.18.1_Linux_x86_64.tar.gz
tar xvzf lazydocker*.tar.gz

sudo install lazydocker /usr/local/bin/
sudo systemctl status docker
sudo lazydocker

Die Steuerung erfolgt über die Pfeiltasten, das Menü lässt sich über x aufrufen und das Tool via Esc beenden.

Eine komplette Liste der Shortcuts findet ihr hier. Im Prinzip selbsterklärend.

Wer sich nicht selbst reinfinden möchte, der kann auch auf das Videotutorial zurückgreifen.

Fazit

Praktisches Tool, welches ohne Webserver oder dergleichen auskommt und etwas mehr Überblick bietet, als die üblichen Konsolenbefehle.

Download Lazy Docker

Jitsi Meet Docker: WelcomePage anpassen

Von: dominion
11. Juni 2021 um 15:24

Im Tutorial Jitsi Meet Docker Instanz anpassen habe ich bereits gezeigt, wie man die Einstellungen der eigenen Docker Jitsi Meet Instanz anpassen kann. Nun zeige ich euch noch, wie die WelcomePage das Aussehen von...

by adminForge.

In eigener Sache: JitsiCloud

Von: dominion
10. Januar 2021 um 10:24

DSGVO-konforme Videokonferenz- und Speicherlösung Ich biete für Schulen, Gemeinden, Vereine, Unternehmen und Organisationen JitsiCloud zu einem attraktiven monatlichen Pauschalpreis an. Was ist JitsiCloud? Die JitsiCloud setzt sich aus Jitsi Meet und Nextcloud zusammen und...

by adminForge.

Jitsi Meet Docker Instanz anpassen

Von: dominion
24. April 2020 um 13:48

Im vorherigen Tutorial habe ich gezeigt, wie die adminForge Jitsi Meet Instanz via Docker/Docker-Compose aufgesetzt wurde. Tutorial: Eigene Jitsi Meet Instanz installieren (Docker / Ubuntu / Nginx) Was ist Jitsi Meet?: Videokonferenzen mit Jitsi...

by adminForge.

Quelle

❌
❌