Docker Tutorial - Εισαγωγή στο Docker & Containerization



Σε αυτό το Docker Tutorial, θα καταλάβετε την αναγκαιότητα πίσω από το Docker και θα πάρετε μια εισαγωγή στο Docker. Είναι το πρώτο blog στη σειρά εκμάθησης Docker

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

Εκπαιδευτικό Docker

Αυτό το blog Docker Tutorial θα σας δώσει την εννοιολογική και πρακτική έκθεση στο Docker - Μια νέα τεχνολογία αποθήκευσης εποχών.





Σε αυτό το ιστολόγιο, θα επικεντρωθούμε στα παρακάτω θέματα:

ποια μέθοδος κλάσης σαρωτή διαβάζει μια συμβολοσειρά
  • Τι είναι η εικονικοποίηση;
  • Τι είναι το εμπορευματοκιβώτιο
  • Πλεονεκτήματα του Containerization έναντι του Virtualization
  • Εισαγωγή στο Docker
  • Οφέλη του Docker
  • Εικονικοποίηση έναντι κοντέινερ
  • Εγκατάσταση Docker
  • Dockerfile, Docker Image & Docker Container
  • Τι είναι το Docker Hub;
  • Αρχιτεκτονική Docker
  • Σύνθεση Docker

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



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

Για παράδειγμα: Ας εξετάσουμε μια εφαρμογή βασισμένη σε Linux που έχει γραφτεί τόσο σε Ruby όσο και σε Python. Αυτή η εφαρμογή απαιτεί μια συγκεκριμένη έκδοση των linux, Ruby και Python. Προκειμένου να αποφευχθούν τυχόν συγκρούσεις εκδόσεων στο τέλος του χρήστη, μπορεί να δημιουργηθεί ένα κοντέινερ linux docker με τις απαιτούμενες εκδόσεις των Ruby και Python εγκατεστημένες μαζί με την εφαρμογή. Τώρα οι τελικοί χρήστες μπορούν να χρησιμοποιήσουν την εφαρμογή εύκολα εκτελώντας αυτό το κοντέινερ χωρίς να ανησυχούν για τις εξαρτήσεις ή τυχόν διενέξεις έκδοσης.

Αυτά τα κοντέινερ χρησιμοποιούν Containerization που μπορεί να θεωρηθεί ως μια εξελιγμένη έκδοση του Virtualization. Η ίδια εργασία μπορεί επίσης να επιτευχθεί χρησιμοποιώντας εικονικές μηχανές, ωστόσο δεν είναι πολύ αποτελεσματική.



Γενικά λαμβάνω μια ερώτηση σε αυτό το σημείο, δηλαδή ποια είναι η διαφορά μεταξύ εικονικοποίησης και κοντέινερ; Αυτοί οι δύο όροι είναι πολύ παρόμοιοι μεταξύ τους. Λοιπόν, επιτρέψτε μου να σας πω πρώτα τι είναι η εικονικοποίηση;

Τι είναι η εικονικοποίηση;

Η εικονικοποίηση είναι η τεχνική εισαγωγής ενός λειτουργικού συστήματος επισκεπτών πάνω από ένα λειτουργικό σύστημα Host. Αυτή η τεχνική ήταν μια αποκάλυψη στην αρχή, διότι επέτρεψε στους προγραμματιστές να εκτελούν πολλαπλά λειτουργικά συστήματα σε διαφορετικές εικονικές μηχανές που τρέχουν όλα στον ίδιο κεντρικό υπολογιστή. Αυτό εξάλειψε την ανάγκη για επιπλέον πόρο υλικού. Τα πλεονεκτήματα των εικονικών μηχανών ή εικονικοποίησης είναι:

  • Πολλά λειτουργικά συστήματα μπορούν να λειτουργούν στο ίδιο μηχάνημα
  • Η συντήρηση και η ανάκτηση ήταν εύκολη σε περίπτωση αστοχίας
  • Το συνολικό κόστος ιδιοκτησίας ήταν επίσης μικρότερο λόγω της μειωμένης ανάγκης για υποδομή

Αρχιτεκτονική εικονικής μηχανής - Docker Tutorial για την εισαγωγή στο Docker - Edureka

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

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

Ένα άλλο πρόβλημα με τις εικονικές μηχανές που χρησιμοποιεί την εικονικοποίηση είναι ότι χρειάζονται σχεδόν ένα λεπτό για την εκκίνηση.Αυτό είναι πολύ κρίσιμο στην περίπτωση εφαρμογών σε πραγματικό χρόνο.

Ακολουθούν τα μειονεκτήματα της εικονικοποίησης:

  • Η εκτέλεση πολλαπλών εικονικών μηχανών οδηγεί σε ασταθή απόδοση
  • Οι υπεύθυνοι επεξεργασίας δεν είναι τόσο αποτελεσματικοί όσο το λειτουργικό σύστημα του κεντρικού υπολογιστή
  • Η διαδικασία εκκίνησης είναι μεγάλη και απαιτεί χρόνο

Αυτά τα μειονεκτήματα οδήγησαν στην εμφάνιση μιας νέας τεχνικής που ονομάζεται Containerization. Τώρα, επιτρέψτε μου να σας πω για το Containerization.

Τι είναι το Containerization;

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

Πλεονεκτήματα του Containerization έναντι του Virtualization:

  • Τα δοχεία στον ίδιο πυρήνα λειτουργικού συστήματος είναι ελαφρύτερα και μικρότερα
  • Καλύτερη χρήση πόρων σε σύγκριση με τα VM
  • Η διαδικασία εκκίνησης είναι σύντομη και διαρκεί λίγα δευτερόλεπτα

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

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

Ρίξτε μια ματιά σε αυτό το βίντεο εκμάθησης του Docker για μια βαθιά κατανόηση του Docker.

Εκπαιδευτικό Docker για αρχάριους | Τι είναι το Docker; | Εργαλεία DevOps | Έντρεκα

Τώρα, επιτρέψτε μου να σας καθοδηγήσω στην εισαγωγή του Docker.

Docker Tutorial - Εισαγωγή στο Docker

Το Docker είναι μια πλατφόρμα εμπορευματοκιβωτίων που συσκευάζει την εφαρμογή σας και όλες τις εξαρτήσεις της μαζί με τη μορφή Containers για να διασφαλίσει ότι η εφαρμογή σας λειτουργεί άψογα σε οποιοδήποτε περιβάλλον.

πώς μπορώ να εγκαταστήσω το php

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

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

Οφέλη του Docker

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

Εικονικοποίηση έναντι κοντέινερ

Το Virtualization και το Containerization σας επιτρέπουν να εκτελείτε πολλά λειτουργικά συστήματα μέσα σε έναν κεντρικό υπολογιστή.

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

Φιγούρα: Τι είναι το Big Data Analytics - Εικονικοποίηση έναντι κοντέινερ

Όπως μπορούμε να δούμε από την εικόνα, η κύρια διαφορά είναι ότι υπάρχουν πολλά λειτουργικά συστήματα επισκεπτών στην εικονικοποίηση που απουσιάζουν από το Containerization. Το καλύτερο μέρος του Containerization είναι ότι είναι πολύ ελαφρύ σε σύγκριση με τη βαριά εικονικοποίηση.

Τώρα, ας εγκαταστήσουμε το Docker.

Εγκατάσταση Docker:

Θα εγκαταστήσω το Docker στο μηχάνημά μου στο Ubuntu 17.10. Ακολουθούν τα βήματα για την εγκατάσταση του Docker:

  1. Εγκαταστήστε τα απαιτούμενα πακέτα
  2. Ρύθμιση αποθετηρίου Docker
  3. Εγκαταστήστε το Docker στο Ubuntu

1. Εγκαταστήστε τα απαιτούμενα πακέτα:

Υπάρχουν ορισμένα πακέτα που χρειάζεστε στο σύστημά σας για την εγκατάσταση του Docker. Εκτελέστε την παρακάτω εντολή για να εγκαταστήσετε αυτά τα πακέτα.

sudo apt-get install curl apt-transport-https ca-Certificate software-properties-common

2. Ρύθμιση αποθετηρίου Docker:

Τώρα, εισαγάγετε το επίσημο κλειδί GPG του Dockers για να επαληθεύσετε την υπογραφή των πακέτων πριν τα εγκαταστήσετε με apt-get. Εκτελέστε την παρακάτω εντολή στο τερματικό:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

Τώρα, προσθέστε το αποθετήριο Docker στο σύστημά σας Ubuntu που περιέχει πακέτα Docker συμπεριλαμβανομένων των εξαρτήσεων του, για να εκτελέσετε την παρακάτω εντολή:

sudo add-apt-repository 'deb [arch = amd64] https://download.docker.com/linux/ubuntu $ (lsb_release -cs) stable'

3. Εγκαταστήστε το Docker στο Ubuntu:

Τώρα πρέπει να αναβαθμίσετε το ευρετήριο apt και να εγκαταστήσετε την έκδοση κοινότητας Docker, για να εκτελέσετε τις παρακάτω εντολές:

sudo apt-get update sudo apt-get install docker-ce

Συγχαρητήρια! Εγκαταστήσατε με επιτυχία το Docker. Επίσης, ρίξτε μια ματιά σε μερικά που χρησιμοποιούνται συνήθως Εντολές Docker .

Τώρα ας δούμε μερικές σημαντικές έννοιες του Docker.

Dockerfile, Docker Image και Docker Container:

  1. Μια εικόνα Docker δημιουργείται από την ακολουθία εντολών που γράφονται σε ένα αρχείο που ονομάζεται Dockerfile.
  2. Όταν αυτό το Dockerfile εκτελείται χρησιμοποιώντας μια εντολή docker, οδηγεί σε μια εικόνα Docker με όνομα.
  3. Όταν αυτή η εικόνα εκτελείται με εντολή 'docker run', θα ξεκινήσει από μόνη της οποιαδήποτε εφαρμογή ή υπηρεσία που πρέπει να ξεκινήσει κατά την εκτέλεσή της.

Docker Hub:

Το Docker Hub είναι σαν το GitHub for Docker Images. Πρόκειται ουσιαστικά για ένα μητρώο cloud όπου μπορείτε να βρείτε τις εικόνες Docker που έχουν μεταφορτωθεί από διαφορετικές κοινότητες, επίσης μπορείτε να αναπτύξετε τη δική σας εικόνα και να ανεβάσετε στο Docker Hub, αλλά πρώτα, πρέπει να δημιουργήσετε έναν λογαριασμό στο DockerHub.

πρόγραμμα πολλαπλασιασμού matrix σε Java

Αρχιτεκτονική Docker:

Αποτελείται από μια μηχανή Docker που είναι μια εφαρμογή διακομιστή-πελάτη με τρία βασικά στοιχεία:

  1. Ένας διακομιστής που είναι ένας τύπος μακροχρόνιου προγράμματος που ονομάζεται διαδικασία δαίμονα (η εντολή docker).
  2. Ένα REST API που καθορίζει διεπαφές που τα προγράμματα μπορούν να χρησιμοποιήσουν για να μιλήσουν με τον δαίμονα και να του καθοδηγήσουν τι να κάνουν.
  3. Ένα πρόγραμμα-πελάτης διεπαφής γραμμής εντολών (CLI) (η εντολή docker).
  4. Το CLI χρησιμοποιεί το Docker REST API για τον έλεγχο ή την αλληλεπίδραση με τον δαίμονα Docker μέσω scripting ή απευθείας εντολών CLI. Πολλές άλλες εφαρμογές Docker χρησιμοποιούν το υποκείμενο API και CLI.

Ανατρέξτε σε αυτό το ιστολόγιο, για να διαβάσετε περισσότερα .

Τέλος, σε αυτό το blog Docker Tutorial θα μιλήσω για το Docker Compose.

Σύνθεση Docker:

Το Docker Compose βασικά χρησιμοποιείται για την εκτέλεση πολλαπλών κοντέινερ Docker ως μεμονωμένου διακομιστή. Επιτρέψτε μου να σας δώσω ένα παράδειγμα:

Ας υποθέσουμε ότι έχω μια εφαρμογή που απαιτεί WordPress, Maria DB και PHP MyAdmin. Μπορώ να δημιουργήσω ένα αρχείο που θα ξεκινούσε και τα δύο κοντέινερ ως υπηρεσία χωρίς να χρειαστεί να ξεκινήσω το καθένα ξεχωριστά. Είναι πραγματικά χρήσιμο ειδικά αν έχετε αρχιτεκτονική μικροεπηρεσίας.

Ανατρέξτε στο ιστολόγιό μου Δοχείο Docker να καταλάβουμε πώς να το εκτελέσουμε πρακτικά.

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

Με αυτό, καταλήγουμε στο πρώτο ιστολόγιο του Docker Tutorial σχετικά με το Introduction To Docker & Containerization.

Μεταβείτε στο επόμενο blog μας στο Docker:

Τώρα που έχετε καταλάβει τι είναι το DevOps, ρίξτε μια ματιά στο δικό μας από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα Εκπαίδευσης Πιστοποίησης Edureka DevOps βοηθά τους μαθητές να αποκτήσουν εμπειρογνωμοσύνη σε διάφορες διαδικασίες και εργαλεία DevOps όπως Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack και GIT για την αυτοματοποίηση πολλαπλών βημάτων στο SDLC.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων και θα επικοινωνήσουμε μαζί σας.