Όλα όσα πρέπει να γνωρίζετε για το Docker Hub

Ας μάθουμε για το Docker Hub.

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

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

Χρειάζεστε βασική κατανόηση του Docker, εξοικειωμένοι με περιβάλλον Windows και Linux. Αυτό το σεμινάριο θα χρησιμοποιήσει το εργαλείο Docker Desktop για την εξάσκηση σε συνεχή άσκηση, δηλαδή για τη δημιουργία και προώθηση μιας εικόνας στο Docker Hub. Οι χρήστες Windows και Mac μπορούν να το κατεβάσουν και να το εγκαταστήσουν από εδώκαι οι χρήστες Linux ακολουθούν αυτό Σύνδεσμος.

Τι είναι το Docker Hub;

Το Docker Hub είναι μια υπηρεσία μητρώου αποθετηρίου που παρέχεται από Docker Inc.

Μας επιτρέπει να τραβάμε και να ωθούμε εικόνες docker προς και από το Docker Hub. Μπορούμε να το αντιμετωπίσουμε ως GitHub, όπου ανακτούμε και προωθούμε τον πηγαίο μας κώδικα, αλλά στην περίπτωση του Docker Hub, κατεβάζουμε ή δημοσιεύουμε τις εικόνες του κοντέινερ μας. Είναι ένα διαδικτυακό αποθετήριο που βασίζεται σε σύννεφο που αποθηκεύει και τους δύο τύπους αποθετηρίων, δηλαδή το ηβικό αποθετήριο καθώς και το ιδιωτικό αποθετήριο. Τα δημόσια αποθετήρια είναι προσβάσιμα σε όλους, αλλά τα ιδιωτικά είναι προσβάσιμα στον ενδιαφερόμενο κάτοχο των αποθετηρίων. Επίσης, υπάρχει ένα κόστος που σχετίζεται με αυτό εάν αποθηκεύουμε περισσότερους από έναν ορισμένο αριθμό αποθετηρίων ως ιδιωτικά.

Χαρακτηριστικά Docker Hub

Το Docker Hub προσφέρει τις ακόλουθες πολλές δυνατότητες.

#1. Αποθετήρια εικόνων

Μας βοηθά να βρίσκουμε και να τραβάμε εικόνες κοντέινερ από το Docker Hub.

Μας βοηθά επίσης να προωθήσουμε εικόνες ως δημόσιο ή ιδιωτικό χώρο αποθήκευσης στο Docker Hub.

#2. Ομάδα και Οργανισμοί

Μας επιτρέπει να δημιουργήσουμε ομάδες εργασίας και να προωθήσουμε τα αποθετήρια ως ιδιωτικά, τα οποία είναι διαθέσιμα για χρήση μόνο στον οργανισμό μας. Με αυτόν τον τρόπο, έχουμε διαχειριστεί την πρόσβαση στα ιδιωτικά μας αποθετήρια εικόνων κοντέινερ.

#3. Ενσωμάτωση GitHub και Bitbucket

Επιτρέπει την ενοποίηση με αποθετήρια πηγαίου κώδικα όπως το GitHub και το BitBucket.

#4. Αυτοματοποιημένες Κατασκευές

Εάν οποιαδήποτε αλλαγή στον πηγαίο κώδικα έχει προωθηθεί σε αποθετήρια πηγαίου κώδικα, εντοπίζει και δημιουργεί αυτόματα εικόνες κοντέινερ από το GitHub ή το BitBucket και τις ωθεί στο Docker Hub.

#5. Webhooks

Μόλις προωθήσουμε τις εικόνες μας με επιτυχία, με τη βοήθεια ενός webhook, ενεργοποιείται μια ενέργεια για την ενοποίηση του Docker Hub με άλλες υπηρεσίες.

  28 Καλύτερο δωρεάν λογισμικό επεξεργασίας φωτογραφιών για υπολογιστή

#6. Επίσημες και Εκδοτικές Εικόνες

Οι εικόνες υψηλής ποιότητας που παρέχονται από τους λιμενεργάτες θεωρούνται επίσημες εικόνες και μπορούν να τραβήξουν και να χρησιμοποιηθούν. Ομοίως, οι εικόνες υψηλής ποιότητας που παρέχονται από εξωτερικούς προμηθευτές είναι εικόνες εκδότη, που ονομάζονται επίσης πιστοποιημένες εικόνες, οι οποίες παρέχουν υποστήριξη και εγγύηση συμβατότητας με την επιχείρηση Docker. Θα συζητήσουμε περισσότερες πιστοποιημένες εικόνες αργότερα σε αυτό το άρθρο.

Δημιουργία πρώτου αποθετηρίου

Αυτό το βήμα απαιτεί σύνδεση στο Docker Hub χρησιμοποιώντας τα διαπιστευτήρια σύνδεσής σας. Εάν δεν έχετε λογαριασμό, μπορείτε ήδη να δημιουργήσετε κάνοντας κλικ στο κουμπί Εγγραφή που είναι διαθέσιμο στην ιστοσελίδα. Αφού συνδεθείτε, μπορείτε να δημιουργήσετε το αποθετήριο κάνοντας κλικ στο Create Repository στη σελίδα υποδοχής.

  • Μόλις κάνετε κλικ στο Create Repository, θα ζητήσει ένα όνομα, θα δώσει ένα όνομα στο αποθετήριο σας.

  • Επιλέξτε μια επιλογή ορατότητας από δημόσια ή ιδιωτική.

Μπορούμε επίσης να ενσωματώσουμε τα αποθετήρια πηγαίου κώδικα όπως το GitHub και το BitBucket μέσω της ρύθμισης κατασκευής, αλλά είναι προαιρετικό και μπορεί να γίνει και σε μεταγενέστερο στάδιο.

  • Μόλις γίνουν όλα, κάντε κλικ στο Δημιουργία.

Συγχαρητήρια! Έχετε δημιουργήσει τα πρώτα σας αποθετήρια, τα οποία θα έχουν ως εξής.

Το Docker Hub μας δίνει μόνο ένα ιδιωτικό αποθετήριο δωρεάν. Αν και, αν χρειαζόμαστε περισσότερα ιδιωτικά αποθετήρια, μπορούμε να αναβαθμίσουμε τον λογαριασμό μας σε πρόγραμμα επί πληρωμή.

Τώρα ανοίξτε το εργαλείο/τερματικό του Docker Desktop, που λάβατε και εγκαταστήσατε παραπάνω και συνδεθείτε στο Docker Hub, χρησιμοποιώντας μια εντολή.

docker login

Εξερευνώντας τις εικόνες

Υπάρχουν δύο τρόποι αναζήτησης δημόσιων αποθετηρίων και εικόνων από το Docker Hub, δηλαδή μπορούμε είτε να το αναζητήσουμε από τον ιστότοπο του Docker Hub είτε να χρησιμοποιήσουμε το εργαλείο γραμμής εντολών και να εκτελέσουμε την παρακάτω εντολή. Σκεφτείτε ότι θέλουμε να αναζητήσουμε την εικόνα του αποθετηρίου MySQL.

docker search mysql

Λήψη εικόνας

Μπορούμε να κατεβάσουμε μια εικόνα από την εντολή Docker Hub χρησιμοποιώντας την εντολή pull ως εξής

# docker pull mysql

Εάν έχουμε ήδη εικόνα mysql στο μηχάνημά μας, τότε η παραπάνω εντολή θα ενημερώσει αυτόματα την εικόνα στην πιο πρόσφατη έκδοση. Ένα πράγμα που πρέπει να έχουμε κατά νου εδώ είναι ότι αν παρατηρήσουμε την έξοδο της εντολής αναζήτησης docker, υπάρχουν πολλές εικόνες της MySQL στο Docker Hub και αυτό συμβαίνει επειδή ο καθένας μπορεί να προωθήσει μια εικόνα. Αλλά εξαρτάται από εμάς, ποιο θα χρησιμοποιήσουμε με βάση την περίπτωση χρήσης μας., και πρέπει να τυρίσουμε το κατάλληλο.

Ας υποθέσουμε ότι θέλουμε να τραβήξουμε μια εικόνα bitnami/mysql.

# docker pull bitnami/mysql

Δημιουργία εικόνας

Αυτή η διαδικασία απαιτεί ένα αρχείο Docker. Μπορούμε να σκεφτούμε ένα Dockerfile ως ένα εγχειρίδιο οδηγιών που λέει στον docker τι να συναρμολογήσει. Εν ολίγοις, είναι ένα αρχείο διαμόρφωσης που συνεχίζει να συναρμολογεί τις οδηγίες, αυτό που του λέμε να συναρμολογήσει.

  Βρείτε φορητούς υπολογιστές προϋπολογισμού ειδικά για παιχνίδια, προγραμματισμό ή γενική χρήση

Πώς λειτουργεί;

Το Docker διαβάζει τις οδηγίες από ένα Dockerfile και δημιουργεί αυτόματα εικόνες. Η εικόνα Docker είναι ένα σύστημα αρχείων σε επίπεδα και αποτελείται από πολλαπλά επίπεδα μόνο για ανάγνωση και κάθε επίπεδο μιας εικόνας Docker αντιπροσωπεύει οδηγίες ενός αρχείου Docker. Ας ακολουθήσουμε τα παρακάτω βήματα για να δημιουργήσουμε μια εικόνα χρησιμοποιώντας το Dockerfile.

Δημιουργήστε ένα Dockerfile, το οποίο καθορίζει τη διαμόρφωση της εφαρμογής μας.

# sudo vim Dockerfile

Σημείωση – Το όνομα του αρχείου πρέπει να είναι Dockerfile με κεφαλαίο «D».

FROM ubuntu:16.04
MAINTAINER [email protected]
RUN apt-get update
RUN apt-get install –y mysql
CMD echo "My first image created."

Ας ρίξουμε μια ματιά σε μερικές από τις σημαντικές λέξεις-κλειδιά που χρησιμοποιούνται στο Dockerfile

  • Μπορούμε να χρησιμοποιήσουμε # σύμβολα για να προσθέσουμε ένα σχόλιο σε ένα αρχείο Docker
  • Η λέξη-κλειδί “FROM” ορίζει τη βασική εικόνα που θα χρησιμοποιηθεί.
  • Ο “ΣΥΝΤΗΡΗΤΗΣΛέξη-κλειδί είναι το άτομο που πρόκειται να διατηρήσει αυτήν την εικόνα.
  • Η λέξη-κλειδί “RUN” χρησιμοποιείται για την εκτέλεση της εντολής που δίνεται για την εικόνα. Στην περίπτωσή μας, πρώτα ενημερώστε το σύστημα και στη συνέχεια εγκαταστήστε τη MySQL.
  • Η λέξη-κλειδί “CMD” χρησιμοποιείται για την εκτέλεση μιας εντολής μετά την εκκίνηση του κοντέινερ.
  • Η λέξη-κλειδί «ΑΝΤΙΓΡΑΦΗ» μπορεί να χρησιμοποιηθεί για την αντιγραφή ενός αρχείου από το λειτουργικό μας σύστημα υποδοχής στο κοντέινερ docker.
  • Η λέξη-κλειδί “EXPOSE” χρησιμοποιείται για τον καθορισμό του αριθμού θύρας στην οποία θα εκτελείται η διαδικασία του κοντέινερ.

Εκτελέστε την παρακάτω εντολή για να δημιουργήσετε την εικόνα Docker μας

Σύνταξη:

docker build -t /repo-name .

# docker build -t asadali08537/first-repo .

Στην παραπάνω εντολή, το όνομα της εικόνας είναι και “.” καθορίζει τον τρέχοντα κατάλογο εργασίας. Αυτή είναι μια ένδειξη για το Docker να αναζητήσει τον τρέχοντα κατάλογο του αρχείου docker. Το “-t” χρησιμοποιείται για την επισήμανση της εικόνας. Μπορούμε να δούμε έξοδο παρόμοια με:

Τώρα ας δοκιμάσουμε την εικόνα μας εκτελώντας την μέσω της εντολής εκτέλεσης του docker.

docker run asadali08527/first-repo

Η εκτέλεση της παραπάνω εντολής θα ζητήσει από την εικόνα του Docker να εγκαταστήσει με επιτυχία τη MySQL στον υπολογιστή σας με όλες τις απαραίτητες ενημερώσεις και, τέλος, θα εμφανίσει και μήνυμα ηχούς.

Σπρώξιμο μιας εικόνας

Μόλις δημιουργηθεί επιτυχώς η εικόνα μας και εκτελεστεί, μπορούμε να την προωθήσουμε στο Docker Hub μέσω της εντολής push.

docker push asadali08527/first-repo

Μπορούμε να ελέγξουμε τις ετικέτες εικόνας και την κατάσταση στο Docker Hub, το οποίο θα μοιάζει κάπως έτσι.

Τι είναι οι εικόνες Docker Certified;

Αυτές είναι οι επίσημες εικόνες που προωθούνται είτε από πωλητές είτε από συνεισφέροντες. Μια εικόνα μπορεί να πιστοποιηθεί από το Docker Hub μόνο εάν το περιεχόμενό της συμμορφώνεται με κανόνες, πρότυπα και νόμους που παρέχονται από το Docker Hub. Εν ολίγοις, αυτή η εικόνα πρέπει να περάσει ορισμένα βασικά τεστ.

  13 Καλύτερες Γεννήτριες Κωδικών QR για την επόμενη ψηφιακή σας καμπάνια

Το Docker Hub παρέχει το εργαλείο inspectDockerImage, μέσω του οποίου ένας προμηθευτής μπορεί να πιστοποιεί μόνος του τις εικόνες και τις προσθήκες (Συνήθως ο προμηθευτής ή ο συνεργάτης δημοσιεύει τις προσθήκες τους για την καταγραφή τόμων και δικτύων).

Σημείωση –

Για να δημοσιεύσουμε την εικόνα μας ως πιστοποιημένη από docker, πρέπει πρώτα να πιστοποιήσουμε και να δοκιμάσουμε τις εικόνες και την προσθήκη μας μόνοι μας μέσω του επιθεωρήστε το DockerImage εργαλείο, αφού το έχουμε πιστοποιήσει και δοκιμάσει με επιτυχία, μετά την υποβολή του το Docker Hub θα το πιστοποιήσει. Εάν το περιεχόμενό μας απαιτεί μη πιστοποιημένο περιβάλλον, τότε δεν μπορεί να δημοσιευθεί ως πιστοποιημένο σε καμία περίπτωση.

Υπάρχουν πολλές επιμελημένες και βελτιστοποιημένες εικόνες είναι διαθέσιμες στο Docker Hub.

Η δημοτικότητα αυτών των εικόνων εξαρτάται από διάφορους παράγοντες όπως έλξεις, παρουσία στην αγορά, βαθμολογίες, βαθμολογίες ικανοποίησης κ.λπ. Για μια λεπτομερή λίστα με τα πιο δημοφιλή αποθετήρια, ας πλοηγηθούμε στο Docker Hub δικτυακός τόπος. Η χρήση μιας εικόνας εξαρτάται επίσης από το λειτουργικό σύστημα και την αρχιτεκτονική του. Εάν γνωρίζουμε ότι οι τραβηγμένες εικόνες θα χρησιμοποιηθούν για ποιο λειτουργικό σύστημα και την αρχιτεκτονική του, τότε πρέπει να λάβουμε υπόψη παρακάτω βασικούς παράγοντες πριν τραβήξουμε μια εικόνα.

  • Αναζητήστε μια συγκεκριμένη έκδοση χρησιμοποιώντας ετικέτες (κυρίως την πιο πρόσφατη).
  • Επιλέξτε αυτό που έχει μέγιστες λήψεις και αστέρια.
  • Ελέγξτε για τις ενημερώσεις του (όταν έχει ενημερωθεί τελευταία).
  • Εάν είναι δυνατόν, ελέγξτε τον τύπο του, είτε πρόκειται για επαληθευμένο εκδότη είτε για επίσημο (Docker Certified).

Webhooks

Το webhook είναι μια επιστροφή κλήσης ιστού που λειτουργεί με συμβάντα και είναι ένας τρόπος για μια εφαρμογή να παρέχει πληροφορίες σε πραγματικό χρόνο σε μια άλλη εφαρμογή. Σήμερα, σχεδόν κάθε εφαρμογή παρέχει μια δυνατότητα webhook, και έτσι το Docker Hub διαθέτει επίσης αυτή τη δυνατότητα.

Είναι ένα HTTP push API που ενεργοποιείται από συμβάντα που έχουν καθοριστεί από τον χρήστη. Μπορούμε να χρησιμοποιήσουμε ένα webhook στο docker για να ειδοποιήσουμε μια εφαρμογή ή υπηρεσία που χρησιμοποιεί τις σχετικές εικόνες. Γενικά, διαμορφώνουμε τα webhook με το docker ως μια σειρά γεγονότων, έτσι ώστε οποιαδήποτε μεταφόρτωση νέων εικόνων θα ενεργοποιεί εφαρμογές δοκιμών για την εκτέλεση των υπογραμμισμένων δοκιμαστικών υποθέσεων.

Μόλις το αποτέλεσμα της δοκιμής είναι επιτυχές, θα ενεργοποιήσει ένα άλλο συμβάν, το οποίο θα είναι η ανάπτυξη κοντέινερ, και μόλις ολοκληρωθεί με επιτυχία η ανάπτυξη, θα ενεργοποιήσει άλλα συμβάντα για την καταγραφή των αλλαγών που έχουν γίνει μέχρι τώρα.

συμπέρασμα

Πιστεύω ότι τώρα κατανοείτε σωστά το Docker Hub και πώς μπορείτε να αναζητήσετε, να δημιουργήσετε και να προωθήσετε εικόνες. Λάβετε υπόψη ότι όταν προωθείτε δημόσιες εικόνες, θα είναι ορατές σε οποιονδήποτε.

Εάν όχι ήδη, ελέγξτε αυτόν τον οδηγό εγκατάστασης του Docker.