Wie man eine schlechte Dateifreigabeleistung in Docker behebt
13. Februar 2020Docker 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
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.
+