Επιστροφή στο blog

Πώς να μοιραστείτε δεδομένα μεταξύ ενός Docker Container και ενός Host

Πώς να μοιραστείτε δεδομένα μεταξύ ενός Docker Container και ενός Host

Εισαγωγή

Γενικά, τα Docker containers εκτελούνται μόνο για ένα συγκεκριμένο χρονικό διάστημα – το χρόνο που απαιτείται για την εκτέλεση της εντολής. Τα δεδομένα που είναι διαθέσιμα μέσα στο container μπορούν να προσπελαστούν μόνο από το εσωτερικό του container κατά τη διάρκεια του χρόνου εκτέλεσης.

Docker volumes μπορούν να χρησιμοποιηθούν για την εύκολη πρόσβαση στα αρχεία και την αποθήκευσή τους για μεγαλύτερο χρονικό διάστημα. Για παράδειγμα, εάν έχετε έναν Nginx web server και θέλετε να αποθηκεύσετε τα logs για ελέγχους, μπορείτε να χρησιμοποιήσετε ένα Docker volume για να αποθηκεύσετε τα logs από το container στο host μηχάνημά σας.

Σε αυτόν τον οδηγό, εσείς θα μάθετε πώς να μοιράζεστε δεδομένα μεταξύ του εσωτερικού του Docker container και του host μηχανήματος. 

Προαπαιτούμενα

Για αυτόν τον οδηγό, θα χρειαστείτε τα ακόλουθα προαπαιτούμενα:

Βήμα 1 – Bind Mount ενός Volume

Μπορείτε να δημιουργήσετε έναν κατάλογο με όνομα logs στον αρχικό κατάλογο του τρέχοντος χρήστη σας και να τον κάνετε bind-mount στο /var/log/nginx στο Nginx container χρησιμοποιώντας την ακόλουθη εντολή:

Εδώ υπάρχουν πιο λεπτομερείς πληροφορίες σχετικά με αυτήν την εντολή:

  • --name=nginx δίνει ένα όνομα στο container για εύκολη αναφορά.
  • -d όρισμα αποσυνδέει τη διεργασία και την εκτελεί στο παρασκήνιο.
  • -v hostPath:containerPath αντιστοιχεί τη διαδρομή του host και τη διαδρομή του container για το bind mount.
  • -p hostPort:containerPort όρισμα αντιστοιχεί τη θύρα του container στη θύρα του host.
  • nginx στο τέλος της γραμμής είναι το όνομα του ειδώλου που πρέπει να χρησιμοποιηθεί για την εκκίνηση του container.
Σημείωση: Χρησιμοποιείτε πάντα / ή ~/ για να ξεκινήσετε το hostPath, διαφορετικά το όρισμα -v θεωρεί ότι η διαδρομή είναι το όνομα του volume και δεν κάνει bind το mount.

Βήμα 2 – Πρόσβαση σε Δεδομένα στο Host

Τώρα, έχετε ένα Nginx container που εκτελείται στον διακομιστή σας, και η θύρα 5000 του διακομιστή σας αντιστοιχεί στη θύρα 80 του Nginx. Μπορείτε να ανοίξετε τη θύρα στο πρόγραμμα περιήγησης ιστού με την ακόλουθη διεύθυνση URL:

nginx homepage

Στον κατάλογο ~/logs, θα δείτε τα αρχεία access.log και error.log. Μπορείτε να δείτε τα logs χρησιμοποιώντας την εντολή cat:

Μπορείτε επίσης να ελέγξετε τον κατάλογο logs ~/logs στο host μηχάνημά σας και να βρείτε το αρχείο logs του Nginx. Επιπλέον, εάν κάνετε οποιεσδήποτε αλλαγές στον φάκελο logs, αυτές θα αντικατοπτρίζονται επίσης στον φάκελο /var/log/nginx του container.

Συμπέρασμα

Σε αυτόν τον οδηγό, μάθατε πώς να μοιράζεστε δεδομένα μεταξύ του εσωτερικού του Docker container και του host μηχανήματος. Αυτό είναι απαραίτητο σε περιβάλλοντα ανάπτυξης όπου η ανάλυση των logs είναι απαραίτητη για τον εντοπισμό σφαλμάτων.

Για περισσότερους πόρους σχετικά με το Docker στο blog μας, μπορείτε να δείτε τα ακόλουθα:

Καλή συνέχεια!

author

Akshay Nagpal

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.