Über FastDFSFastDFS ist ein Open-Source-leichtes, verteiltes Dateisystem, das in der Programmiersprache C entwickelt wurde. Es verwaltet Dateien. Seine Hauptfunktionen umfassen: Dateispeicherung, Dateisynchronisierung, Dateizugriff (Dateiupload/-download) usw. Es eignet sich besonders für dateibasierte Onlinedienste wie Bild-Websites, Video-Websites usw. Randbemerkung: FastDFS ist ein persönliches Projekt von Yu Qing von Alibaba. Seit der Entwicklung von FastDFS als Open Source im Jahr 2008 genießt es bei einigen Internet-Startups großes Ansehen. Die Open-Source-Adresse von GitHub lautet: https://github.com/happyfish100/fastdfs Dieser Artikel basiert auf Docker. Der Hauptinhalt ist wie folgt: 1. Suche nach BildernFühren Sie den Befehl aus: Docker-Suche Fastdfs Dann sucht die Schnittstelle nach vielen Bildern. Welches soll ich auswählen? Wie üblich sollten wir denjenigen mit der größten Anzahl an Sternen auswählen. Wie bitte? Du machst Dir Sorgen um die Startnummer und hast Angst gehackt zu werden? Ok, gehen wir zum Bild-Repository und schauen uns das an: Ergänzung: Tatsächlich können wir einige Unterschiede erkennen, wenn wir uns die Beschreibungen dieser Images ansehen. Beispielsweise ist ygqygq2/fastdfs-nginx ein Image, das Fastdfs mit Nginx integriert. Daher stellt sich eine neue Frage: Warum Nginx integrieren? Denn für Fastdfs ist nach der Installation nur der lokale Zugriff möglich ... Ich lade Dateien für den Zugriff hoch. Um also Webzugriff bereitzustellen, muss Nginx integriert werden. Wenn Sie Nginx jedoch selbst verwenden möchten, wählen Sie es definitiv nicht. Das Season/Fastdfs-Image ist relativ rein. Dieser Artikel basiert auf dem Season/Fastdfs-Image. Die Nginx-Konfiguration wird später ebenfalls enthalten sein ... 2. Installieren Sie das ImageFühren Sie den Befehl aus: Docker-Pull-Saison/FastDFS:1.2 Der Grund, warum wir Version 1.2 gewählt haben, besteht darin, zu verhindern, dass dieser Artikel nach einem weiteren Update für die neueste Version ungeeignet ist. Die Ausführungs-Screenshots sind wie folgt:
Erstellen Sie einen Container und mounten Sie das Verzeichnis Bevor wir einen Container erstellen, sprechen wir kurz über FastDFS. Das FastDFS-System hat drei Rollen:
Apropos, ich möchte meinen Freunden sagen, dass wir als Nächstes möglicherweise drei Container erstellen: einen Tracking-Server-Container, einen Storage-Server-Container und einen Client-Container … 3.1. Erstellen Sie die erforderlichen VerzeichnisseWir erstellen zunächst einige erforderliche Verzeichnisse (Datenverzeichnis, Datenspeicherverzeichnis usw.) und führen den Befehl aus: mkdir -p /usr/local/server/fastdfs/tracker/data mkdir -p /usr/local/server/fastdfs/storage/data mkdir -p /usr/local/server/fastdfs/storage/pfad 3.2. Einen Tracker-Container erstellen (Tracking-Server-Container)Führen Sie den Befehl aus: docker run -id --name tracker \ -p 22122:22122 \ --restart=immer --net host \ -v /usr/local/server/fastdfs/tracker/data:/fastdfs/tracker/data \ Saison/FastDFS:1.2 Tracker Lassen Sie mich den obigen Befehl wiederholen:
3.3. Erstellen Sie einen Speichercontainer (Speicherservercontainer)Ausführungsbefehl ( nicht der endgültige Ausführungsbefehl, bitte ändern Sie ihn in Ihre eigene IP-Adresse): docker run -id --name Speicher \ --restart=immer --net host \ -v /usr/local/server/fastdfs/data/storage:/fastdfs/store_path \ -e TRACKER_SERVER="10.211.55.4:22122" \ Saison/FastDFS:1.2 Speicher 3.4.Client-TestNachdem die beiden Container erstellt wurden, sie aber zu diesem Zeitpunkt noch nicht wirklich verknüpft sind, rufen wir den Tracker-Container auf und testen ihn über client.conf: Docker Exec -it Tracker Bash cd /etc/fdfs/ ls cat-Client.conf Die Ausgabe Versuchen Sie, eine Verbindung herzustellen: fdfs_monitor client.conf Dann erhalten Sie etwa Folgendes:
Das heißt, bevor die Client-Konfiguration geändert wird, stellt der Standard-Tracker eine Verbindung zur Adresse 3.4. Ändern Sie die Konfigurationsdatei client.conf Nachdem Sie den Tracker-Container über Führen Sie den Befehl aus: docker cp trakcer:/etc/fdfs/client.conf /usr/local/server/fastdfs/ Wir kopieren die Konfigurationsdatei über den Docker-Befehl in das Verzeichnis Wir bearbeiten diese Datei und ändern die tracker_url Adresse ( Speichern Sie die Änderungen nach der Modifikation und ersetzen Sie anschließend die modifizierte Datei wieder. Anweisungsbefehl: docker cp /usr/local/server/fastdfs/client.conf tracker:/etc/fdfs An diesem Punkt wurde die Konfigurationsdatei geändert. Als Nächstes erstellen wir einen Datei-Upload-Test. 4. Datei-Upload-TestFühren Sie den Befehl aus, um den Tracker-Container aufzurufen: Docker Exec -it Tracker Bash Erstellen Sie einfach eine txt-Datei: echo "schöneroo" > schöneroo.txt Laden Sie dann die Datei niceyoo.txt mit dem Befehl fdfs_upload_file auf den Server hoch: fdfs_upload_datei /etc/fdfs/client.conf niceyoo.txt Wenn zu diesem Zeitpunkt folgender Fehler gemeldet wird: Erstellen Sie dann diesen Pfad und überspringen Sie ihn, wenn keiner vorhanden ist: mkdir -p /home/yuqing/fastdfs Erstellen Sie das Verzeichnis und versuchen Sie die Übermittlung erneut: Wir kopieren den Dateinamen: Da wir das Host-Verzeichnis zuvor gemountet haben, gehen wir zu cd /usr/local/server/fastdfs/data/storage/data ls Die Ausgabe lautet wie folgt: 5. Nginx konfigurierenWie in der vorherigen Ergänzung erwähnt, können die hochgeladenen Dateien standardmäßig nur lokal aufgerufen werden. Dies ist natürlich definitiv nicht akzeptabel, daher müssen wir Nginx so konfigurieren, dass wir den Effekt des Webzugriffs erzielen können. Erstellen Sie das nginx-Verzeichnis: mkdir -p /usr/local/server/fastdfs/nginx/ Kopieren Sie die Nginx-Konfigurationsdatei in den Speichercontainer: Docker CP-Speicher: /etc/nginx/conf/nginx.conf /usr/local/server/fastdfs/nginx/ Ändern Sie die Konfiguration in nginx: vi /usr/local/server/fastdfs/nginx/nginx.conf Suchen Sie den lokalen Knoten und ändern Sie ihn wie folgt: Standort / { root /fastdfs/Speicherpfad/Daten; ngx_fastdfs_module; } Die entsprechenden Screenshots sind wie folgt: Der nächste Schritt besteht darin, den Nginx-Container zu erstellen und ihn auf die gerade erstellte Konfigurationsdatei zu verweisen. Freunde, die nginx nicht installiert haben, können auch die folgenden Anweisungen ausführen. Standardmäßig hilft es Ihnen, das Image abzurufen und zu installieren. Hinweis: Bitte ändern Sie die IP-Adresse vor der Ausführung docker run -id --name fastdfs_nginx \ --restart=immer \ -v /usr/local/server/fastdfs/data/storage:/fastdfs/store_path \ -v /usr/local/server/fastdfs/nginx/nginx.conf:/etc/nginx/conf/nginx.conf \ -p 8888:80 \ -e TRACKER_SERVER=10.211.55.4:22122 \ Saison/FastDFS:1.2 nginx Schauen wir uns an dieser Stelle die erstellten und gestarteten Container an: Testen wir die zuvor hochgeladene Datei curl -i http://127.0.0.1:8888/group1/M00/00/00/CtM3BF84iz2AWE_JAAAACBfWGpM793.txt Ausführungsergebnis: An diesem Punkt wurde der gesamte Prozess erfolgreich erstellt. Greifen wir über den Browser darauf zu: Wie wird es im Projekt verwendet, nachdem der Bau abgeschlossen ist? SpringBoot integriert FastDFS-Abhängigkeit, um den Dateiupload zu implementieren Dies ist das Ende dieses Artikels zum Erstellen des FastDFS-Dateisystems in Docker (Tutorial mit mehreren Bildern). Weitere relevante Inhalte zum Erstellen von FastDFS in Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung einiger Tipps zum MySQL-Indexwissen
>>: Ein Beispiel für die Verwendung von CSS-Methoden zur Erzielung von Modularität
Der Tomcat-Server ist ein kostenloser und quellof...
【Vorwort】 Die SMS-Funktion unseres Projekts beste...
In diesem Artikel wird der spezifische Code für J...
MySQL-Versionen werden in Enterprise Edition und ...
Schritt 1: Stow installieren In diesem Beispiel v...
Frage Beim Ausführen von gdb im Docker wird ein H...
Code kopieren Der Code lautet wie folgt: <!DOC...
MySQL-Installation (4, 5, 6 können weggelassen we...
> MySQL 5.7 Cluster Master und Slave bereitste...
Dieser Artikel beschreibt, wie Sie Apache auf ein...
Folgen Sie dem offiziellen Tutorial, laden Sie da...
Der endgültige Effekt ist wie folgt: Die Animatio...
Jeden Tag ein jQuery-Plugin – um einen Suchverlau...
Ohne weitere Umschweife werde ich den Code direkt...
Inhaltsverzeichnis 1. Einfaches Einbinden persist...