Wie man eine schlechte Dateifreigabeleistung in Docker behebt

13. Februar 2020

Lang: cs en de es

Docker ist in erster Linie für Linux konzipiert. Dank seiner Erweiterbarkeit und Offenheit hat es seinen Weg zu Windows und Mac OS X gefunden. Auf diesen Betriebssystemen hat Docker jedoch ein Geschwindigkeitsproblem, wenn es um den Dateizugriff geht. Wie lässt sich dieses Problem lösen? Wie kann man die Leistung verbessern?

Docker ist ein Werkzeug, um die Arbeit zu rationalisieren und einige Probleme zu lösen. Aber es führt auch neue Probleme ein.
Viele der Probleme entstehen jedoch durch Unkenntnis des Werkzeugs, durch falschen Gebrauch des Werkzeugs und durch Unkenntnis der Linux-Welt.

Andere Plattformen

Das Problem, dass man nicht weiß, wie man einen Linux-Server konfiguriert, und die damit verbundene (un-)richtige Funktionsweise und Sicherheit, lasse ich mal beiseite. Ohne Linux-Kenntnisse sollte niemand Docker in einer Produktionsumgebung einsetzen.
Das häufigste Problem, das Windows- und macOS-Anwender mit Docker haben, ist die Leistung der Dateifreigabe zwischen Host und Container. Docker wurde primär für Linux entwickelt, so dass Windows oder Mas OS X nicht die richtige Plattform für Docker-Nutzer ist.

Einige Nutzer haben die einfache und optimale Lösung gewählt, von Windows oder macOS auf GNU/Linux zu wechseln. Schließlich ist Linux der Standard für Entwickler, weil es für sie die ideale Lösung ist.

Allerdings ist der Benutzer nicht immer bereit, sich zu ändern. Wie kann man die Leistung von Dateifreigaben ansprechen?

Andere Werkzeuge

Es gibt andere Werkzeuge, die die Entwicklung effizienter machen. Eine Möglichkeit ist also, diese Werkzeuge zu wechseln.

VirtualBox

Es ist zum Beispiel möglich, ein vollständiges Virtualisierungstool zu verwenden. Und Linux und Entwicklungstools in der virtuellen Maschine zu installieren.
Ein ideales Tool könnte VirtualBox sein, das Multiplattform ist, sodass man es nicht nur unter Linux, sondern auch unter Windows und macOS einsetzen kann.

Allerdings bietet Docker eine gewisse Automatisierung der Installation und Konfiguration. Auch dafür gibt es standardisierte Tools. Zum Beispiel verwalte ich Linux-Server. Ich verwende Ansible, eine weitere Option ist Puppet und andere.

Vagrant

Sie können Vagrant verwenden, das speziell für die Bereitstellung einer Entwicklungsumgebung konzipiert ist. Vagrant ist ein Tool, das Ihr System in einer virtuellen Maschine vorbereitet. Es kann einfach VirtualBox oder andere träge Virtualisierung oder sogar Container-Virtualisierung als Virtualisierung verwenden.

Optimierung der Dateifreigabe im Docker

Aber nehmen wir an, Sie wollen bei Docker bleiben und keine weitere Ichnologie hinzufügen. Wie löst man die langsame Leistung von Dateifreigaben?

Beschränkte Freigabe

Eine sehr einfache Lösung besteht darin, nicht das gesamte Projekt mit Docker zu verknüpfen, sondern nur das Verzeichnis mit dem Quellcode, den Sie bearbeiten müssen. Die Bibliotheken, Skripte und Daten, die bearbeitet werden, bleiben im Container.

Virtuelle Maschine + Freigabe

Führen Sie Linux auf einer virtuellen Maschine aus und installieren Sie Docker darin. Sie können dann ein Standardwerkzeug wie SAMBy (Plattenfreigabe) verwenden, um Daten aus der virtuellen Maschine heraus freizugeben. Oder mounten Sie ein freigegebenes Verzeichnis von Ihrem Rechner auf die virtuelle Maschine.

Docker andere Freigabe

Ich glaube nicht, dass jemand eine vollständig virtualisierte Maschine mit Linux darauf installieren und sich mit Docker beschäftigen möchte. Es gäbe noch die Möglichkeit, SAMBu oder andere Freigaben in Docker laufen zu lassen. Das ist auch möglich, man kann SAMBU im selben Docker-Container laufen lassen - aber das ist nicht der richtige Ansatz für Docker. Sie können jedoch SAMBA in einem separaten Container ausführen und Projektdaten zwischen Containern freigeben und SAMBA verwenden, um die Daten mit Ihrem PC zu teilen. (Siehe den Artikel Docker und Cron für die Ausführung der Anwendung in einem anderen Container).

Eine ähnliche Lösung wäre die Verwendung von sshfs, ftps, nfs oder anderen.

Datensynchronisation

Eine andere Lösung ist es, den Quellcode der Containeranwendung nicht über Volume zu haben, sondern die Daten automatisch zu synchronisieren. Phpstorm zum Beispiel kann Daten über SSH mit dem Container synchronisieren, wenn eine Änderung vorgenommen wird. Es kann auch externe Änderungen erkennen, so dass es nicht notwendig ist, den gesamten Container neu zu erstellen, wenn der Composer aktualisiert oder installiert wird. Es ist schnell und arbeitet zuverlässig und konsistent auf allen Plattformen.

Schulung

Für Unternehmen, die ihre Abläufe rationalisieren wollen, kann ich Docker empfehlen. Und durch eine Docker-Schulung und anschließende Zusammenarbeit Zusammenarbeit werden wir Docker in die Unternehmen bringen.

Interessante Ressourcen

Docker unter macOS und Einrichten von Caching

Artikel zu einem ähnlichen Thema

VMware vs. Proxmox: Leistungsvergleich
GitLab CI/CD: Testautomatisierung und Anwendungsbereitstellung
VPS von VMware zu Proxmox migrieren
VMware-Lizenzierungsänderung
Ausführen von Microsoft SQL Server unter Linux
Sicherung: der Proxmox Backup Server
Linux als Router und Firewall
Hochladen eines Docker-Images in die Docker-Registry
Linux: Verwaltung logischer Datenträger
Linux-Software-RAID
Ausführen einer Webanwendung hinter einem Proxy
Migration von Postfächern
Mehrstufige Docker-Erstellung
Sichern Ihrer Daten durch Einschalten des Computers
Podman
Importieren von Windows in die Proxmox-Virtualisierung
Docker und PHP-Mail
Proxmox-Virtualisierung
Docker und Cron
Lenovo ThinkPad X1 Carbon: Inbetriebnahme des LTE-Modems EM7544
Yocto-Projekt: Erstellen eines eigenen Betriebssystems für eingebettete Geräte
Vorbereiten eines Linux-Servers für die Ausführung einer Webanwendung in Python
Wie man Docker richtig einsetzt
Installation von Linux auf einem dedizierten HPE ProLiant DL320e Server
Wie man eine Webanwendung einem Belastungstest unterzieht
Warum das JFS-Dateisystem verwenden
Booten von einer 4TB-Festplatte mit GTP unter UEFI
Btrfs-Dateisystem
Raspberry PI
WINE - Ausführen von Windous Programmen unter Linux
GNU/Linux-Betriebssystem

Newsletter

Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben News-Abonnement.


+