IT-Tools

Wenn man gerade keine Linux-Console zur Hand hat...

IT-Tools

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.

Eigener Webserver mit offiziellen Zertifikaten
Der Basis-Artikel für alle folgenden Services, die ich hier demonstrieren werde…
Docker - Meister-Tech-Blog

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:

Eigener Webserver mit offiziellen Zertifikaten
Der Basis-Artikel für alle folgenden Services, die ich hier demonstrieren werde…

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 des it-tools-Images aus dem Repository corentinth 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.
  • 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...