IT-Tools
Wenn man gerade keine Linux-Console zur Hand hat...
Dieser Post wird einfach und kurz. Denn er entstand, während ich einen bekannten in seiner Firma unterstützte. Eigentlich war ich aus diesem Grund garnicht bei ihm zu Besuch. Daher hatte ich natürlich auch keine Werkzeuge dabei. Und er nutzt traurigerweise nur Windows. IT-Probleme sind damit leider nur extrem schwierig zu lösen.
An diesem Tag galt es Aufgaben mit Zertifikaten und verschlüsselten Dateien zu lösen. Unter Linux hätte ich schnell mit openssl in der Console arbeiten können. Unter Windows? Ich kann nicht alles aufzählen, was er für mich installieren wollte...
Wenn es mal schnell gehen muss
In meiner Blog-Reihe über Docker habe ich ja über viele Module berichtet, die ich bereits im Einsatz habe.
Ein Modul habe ich dabei bisher noch nicht angesprochen. IT-Tools ist eine nützliche Sammlung von Werkzeugen, die man irgendwie immer brauchen kann. Ein Beispiel? Gerne!
Docker-Compose-File aus einem docker run
Befehl erstellen
Auf der Webseite von Docker werden typischerweise immer nur die Befehle gelistet, mit denen man einen Container starten kann:
Da ich meine Container gerne in meine Umgebung einbaue und meist im Zusammenspiel mit anderen Containern betreibe, möchte ich diesen gesamten Verbund aus Containern in einem File beschreiben: Im docker-compose.yml
-File. Will ich den obigen Container meinem Verbund hinzufügen, benötige ich dafür die passende YML-Beschreibung. Ich kopiere daher den Befehl und füge ihn in IT-Tools ein:
Und schon habe ich meinen Abschnitt für mein Compose-File, an dem ich nun noch kleine Anpassungen für meine Umgebung machen kann.
Nachschlagewerk
Aber auch gängige Informationen lassen sich hier schnell beschaffen. Was wollte mir doch gleich wieder der Code 503 auf einer Webseite sagen?
Ach ja. Jetzt erinnere ich mich auch wieder...
IT-Tools installieren
Da ich den Container aus dem Internet erreichen will, startet natürlich alles in meinem üblichen Framework:
Dazu brauchen wir wieder ein docker-compose.yml
, was man von der IT-Tools Webseite bekommen kann. Damit es auf meiner Webseite läuft, mache ich die entsprechenden Anpassungen:
it-tools:
image: 'corentinth/it-tools:latest'
container_name: it-tools
restart: unless-stopped
expose:
- 80
security_opt:
- no-new-privileges:true # Prevent the container from gaining additional privileges
- seccomp:unconfined # Customize Seccomp profile for additional security
deploy:
resources:
limits:
cpus: '0.5' # Limit CPU usage
memory: 512M # Limit memory usage
labels:
- "com.centurylinklabs.watchtower.enable=true"
networks:
- web
Hier sind die einzelnen Elemente erklärt:
- image: Bestimmt das Docker-Image, das verwendet wird. In diesem Fall ist es
corentinth/it-tools:latest
, was bedeutet, dass die neueste Version desit-tools
-Images aus dem Repositorycorentinth
verwendet wird. - container_name: Gibt den Namen des Containers an. In diesem Fall wird der Container
it-tools
genannt. - restart: Legt die Neustart-Politik fest.
unless-stopped
bedeutet, dass der Container automatisch neu gestartet wird, es sei denn, er wurde manuell gestoppt. - expose: Definiert die Ports, die im Container verfügbar sind. Hier wird Port 80 freigegeben, jedoch nicht nach außen hin veröffentlicht.
- security_opt: Beinhaltet Sicherheitsoptionen:
no-new-privileges:true
: Verhindert, dass der Container zusätzliche Privilegien erlangt.seccomp:unconfined
: Passt das Seccomp-Profil an, um zusätzliche Sicherheitseinstellungen zu ermöglichen.
- deploy: Definiert Bereitstellungsoptionen, insbesondere Ressourcenlimits:
- resources:
- limits: Legt die maximalen Ressourcen fest, die der Container verwenden darf.
- cpus: Der Container darf maximal 0,5 CPU-Kerne verwenden.
- memory: Der Container darf maximal 512 Megabyte Arbeitsspeicher nutzen.
- limits: Legt die maximalen Ressourcen fest, die der Container verwenden darf.
- resources:
- labels: Fügt Metadaten hinzu, die zur Verwaltung des Containers verwendet werden können. Hier aktiviert das Label
com.centurylinklabs.watchtower.enable=true
eine Überwachungsfunktion für automatische Updates des Containers. - networks: Gibt an, dass der Container Teil des Netzwerks
web
ist, was die Kommunikation mit anderen Containern in diesem Netzwerk ermöglicht. In diesem Fall die Kommunikation mit dem Reverse-Proxy Nginx-Proxy-Manager.
Ein docker-compose up -d
startet die Werkzeuge. Jetzt noch schnell den NPM anpassen, damit https://tools.meine-domain.de
an den Container weitergeleitet wird.:
Fertig!
Ausprobieren
Ich rufe also einfach mal meine Webseite auf:
Und siehe da: Auch wenn man mal nicht seinen Laptop dabei hat, sind kleinere Probleme schell erledigt. Und das geht auf dem Smartphone ähnlich geschmeidig:
Fazit
Ich weiß natürlich, dass ich auch meinen Linux-Desktop im Browser hätte nutzen können. Aber einige der Werkzeuge aus diesem Toolset sind durchaus elegant. Und es macht schon Freude, wenn man mit so einfachen Mitteln so nützliche neue Möglichkeiten aufbauen kann...