So verwenden Sie Docker, um Software sicher auszuprobieren

0
212

Mit Docker können Sie Software als autarke Container zusammenfassen, die ihren Host teilen& #8217;s Kernel, aber aussehen und sich anfühlen wie unabhängige VMs. Die darin enthaltene Software läuft mit nahezu nativer Leistung. Dies macht Docker-Container zu einer großartigen Möglichkeit, neue Pakete sicher auszuprobieren, ohne sie “Bare Metal” auf Ihrer Maschine. Hier sind einige der Techniken, die Sie verwenden können.

Warum Docker verwenden, um Software auszuprobieren?

Eine direkte Installation über einen Paketmanager ist nicht immer wünschenswert, wenn Sie Software zum ersten Mal ausprobieren. Möglicherweise möchten Sie keinen unerprobten Daemon- oder Netzwerkdienst auf Ihrer Hardware ausführen. Einige Deinstallationsprogramme entfernen nicht jede Datei, die mit ihrem Paket verbunden ist, was Ihren Computer mit verwaisten Konfigurationen überhäuft, wenn Sie sich entscheiden, die Software nicht langfristig zu verwenden.

Im schlimmsten Fall könnte das heruntergeladene Paket sogar bösartig oder kompromittiert sein. Die Entscheidung für eine Bare-Metal-Installation gefährdet Ihre Daten. Wenn Sie sich eines Problems bewusst werden, könnten Angreifer bereits vertrauliche Informationen aus ihrem schändlichen Installationsskript entnommen haben.

Docker-Container bieten Ihnen eine isolierte Sandbox, in der Sie neue Pakete installieren können, ohne sich darüber Gedanken zu machen Anliegen. Im Vergleich zum Hochfahren einer ganz neuen VM ist Docker leichter und schneller, bietet aber ein ähnliches Maß an Sicherheit, wenn es für eine sichere Ausführung konfiguriert ist.

Pakete, die Sie in einem Container installieren, ändern das Dateisystem dieses Containers, sodass die Daten Ihres Hosts intakt bleiben. Schädliche Pakete haben es viel schwerer, Ihr System zu gefährden, da sie aus dem Container ausbrechen müssen, um Ihren Host zu erreichen. Installer, die nach interessanten Konfigurationsdateien aus anderen Paketen suchen, sehen ein neues Dateisystem anstelle Ihrer Benutzerdaten.

Werbung

Wenn sich herausstellt, dass ein Paket nicht das Richtige für Sie ist, ’ 8220;deinstallieren” indem Sie einfach Ihren Sandkasten-Docker-Container löschen. Es wird keine Spur davon auf Ihrem System hinterlassen.

Finden von Docker-Images

Wenn Sie etwas Neues ausprobieren möchten, suchen Sie am besten zuerst nach Docker Hub und sehen Sie, ob bereits ein Container-Image für Ihr ausgewähltes Paket vorhanden ist. Images bieten gebrauchsfertige Bereitstellungen bestimmter Software, ähnlich einer VM-ISO, die mit einer Reihe von Paketen vorkonfiguriert wurde.

Viele beliebte Projekte bieten jetzt offizielle Docker-Images als Teil ihrer Releases an . Diese sind auf Docker Hub deutlich mit einem grünen “Official Image” Abzeichen.

Manchmal finden Sie möglicherweise ein inoffizielles Bild, das das gesuchte Paket enthält wird aber von einem Community-Mitglied veröffentlicht. Es lohnt sich, zuerst die Download-Statistiken zu überprüfen, um festzustellen, ob andere es erfolgreich verwenden.

Sie sollten auch sicherstellen, dass das Image eine Variante für die gewünschte Softwareversion enthält. Bilder unterscheiden verschiedene Versionen mit Docker-Tags, z. B. mongo:5 für MongoDB 5 und mongo:4 für MongoDB 4. Verwenden Sie die Tags-Ansicht von Docker Hub, um die verfügbaren Optionen und den Zeitpunkt der letzten Aktualisierung anzuzeigen.

Ein Bild verwenden

Sobald Sie ein Bild gefunden haben, starten Sie einen Container daraus. Sie sollten in der Beschreibung Ihres Images auf Docker Hub nachschlagen, um spezifische Anweisungen für die von Ihnen ausgewählte Software zu erhalten.

Werbung

Im Allgemeinen können Images zum Verpacken einer interaktiven Anwendung gestartet werden Verwenden Sie diese Sequenz:

docker run -it example-image:latest

Starten Sie Images, die Hintergrundprozesse bereitstellen, stattdessen mit dem Flag -d:

docker run -d example-image:latest

Der Befehl docker run startet einen Container mit dem angegebenen Image. Ihre Software läuft nun in einer isolierten Umgebung mit eigenem Dateisystem. Sie können mehrere unabhängige Instanzen gleichzeitig ausführen, indem Sie mehrere Container aus dem Image starten.

Was ist, wenn kein Image vorhanden ist?

< p>Das Fehlen eines Beamten – oder inoffiziell – Das Docker-Image für Ihr ausgewähltes Softwarepaket ist nicht das Ende Ihrer Try-with-Docker-Reise. Erstellen Sie in dieser Situation einen Container aus einem Betriebssystem-Basisimage, um Ihre isolierte Umgebung zu hosten. Sie können dann den regulären Installationsvorgang der Software ausführen, um sie in Ihren Container zu übertragen.

Hier ist ein Beispiel, das eine neue Ubuntu-Umgebung in Docker startet:

docker run – es ubuntu:20.04

Die Flags -it bedeuten, dass Sie in eine interaktive Shell fallen, die im Terminal ausgeführt wird. Jetzt können Sie apt, curl, wget oder andere notwendige Schritte verwenden, um Ihr Zielpaket zu installieren und auszuprobieren.

apt update apt install example-package example-package –example-flags Werbung

Wenn Wenn Sie diese Schritte in Zukunft wiederholen möchten, schreiben Sie ein Dockerfile, mit dem Sie Ihr eigenes Image erstellen können:

FROM ubuntu:20.04 apt update apt install example-package ENTRYPOINT [“example-package”] CMD [“”]

Erstellen Sie Ihr Image:

docker build -t example-package:latest .

Verwenden Sie jetzt Ihr Image, um einen Container zu starten, der automatisch die dem Ubuntu-Basisimage hinzugefügte Beispielpaket-Binärdatei ausführt:

docker run -it example-package:latest –example-flags

Das funktioniert, weil Die Binärdatei wird als Befehl des Docker-Images in Ihrem Dockerfile festgelegt. Es wird automatisch ausgeführt, wenn der Container startet, und empfängt die Flags, die Sie an docker run übergeben.

Snapshots erstellen

Ein weiterer Vorteil der Verwendung von Docker zum Ausprobieren neuer Software ist die Möglichkeit, Snapshots des aktuellen Zustands eines Containers zu erstellen. Dies ist nützlich, wenn Sie verschiedene Einstellungen ausprobieren und eine bestimmte Konfiguration sichern möchten, damit Sie später problemlos darauf zurückgreifen können.

Verwenden Sie den Docker-Commit-Befehl, um ein neues Image aus einem Container zu erstellen&#8217 ;s Dateisystem:

docker commit my-container package-snapshot:latest

Ersetzen Sie my-container durch die ID oder den Namen Ihres Containers. Sie können diese Details abrufen, indem Sie docker ps ausführen, das alle laufenden Container in der Reihenfolge anzeigt, in der sie gestartet wurden. Der Befehl markiert das Snapshot-Image als package-snapshot:latest.

Werbung

Jetzt können Sie alle erforderlichen Änderungen an Ihrem vorhandenen Container vornehmen, ohne sich Sorgen machen zu müssen, dass Ihr aktueller Status beeinträchtigt wird. Wenn Sie ein Rollback durchführen möchten, verwenden Sie docker run, um einen anderen Container aus dem package-snapshot:latest Image zu starten.

Aufräumen

Wenn Sie mit dem Experimentieren fertig sind, erleichtert Docker die “Deinstallation” Ihre Software, ohne Spuren zu hinterlassen. Löschen Sie zuerst Ihre Container:

docker rm my-container

Löschen Sie dann die heruntergeladenen Bilder:

docker rmi example-image:latest

Sie sind jetzt wieder bei ein sauberer Zustand. Da alles, was mit der Software zu tun hatte, nur in Ihrem Container existierte, bleibt das Dateisystem Ihres Hosts unverändert.

Persistente Daten

Eine Herausforderung, auf die Sie möglicherweise stoßen, ist, wenn Sie Ihre Testversionen pausieren und später fortsetzen möchten. Docker-Container setzen ihren Status zurück, wenn sie gestoppt werden, sodass alle von Ihnen vorgenommenen Dateisystemänderungen, wie das Hinzufügen von Konfigurationsdateien, verloren gehen.

Sie können dies beheben, indem Sie Volumes in den Container einhängen damit wichtige Dateien auf Ihrem Host beibehalten werden. Verwenden Sie dazu das Flag -v mit docker run.

docker run -it -v config-volume:/etc/example-package/conf.d example-package:latest

Volumes überleben einzelne Container, sodass Sie Ihre Dateien in einem neuen Container wiederherstellen können, indem Sie dieselben -v-Flags bereitstellen. Löschen Sie Volumes mit dem Befehl docker volume rm.

Schlussfolgerung

Docker ist eine schnelle und einfache Möglichkeit, Software sicher auszuprobieren, ohne Ihren Host-Rechner zu verschmutzen’s Umgebung. Es ermöglicht Ihnen, neue Pakete zu durchsuchen, bevor Sie sie in sensible Systeme und Bare-Metal-Hardware einführen.

Werbung

Die Verwendung von Docker bietet die Möglichkeit, Software zu scannen, bevor Sie sie ausführen. Die integrierte Docker-Scan-Komponente identifiziert Schwachstellen in den Paketen innerhalb eines Images und gibt Ihnen einen Überblick über die Auswirkungen auf die Sicherheit. Verwenden Sie docker scan example-package:latest, um heruntergeladene Bilder zu scannen.

Sie können Ihre Dockerized-Softwareinstallation auch nach dem ersten Experimentieren verwenden. Alternativ können Sie das Gelernte verwenden, um eine funktionierende Bare-Metal-Installation einzurichten, mit größerer Sicherheit, dass das Paket das tut, was es verspricht.