portaldacalheta.pt
  • Κύριος
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
Πίσω Μέρος

Ξεκινώντας με το Docker: Απλοποίηση DevOps



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

Docker, που αντιπροσωπεύεται από ένα λογότυπο με μια φιλική φάλαινα



Το Docker, που αντιπροσωπεύεται από ένα λογότυπο με μια φιλική φάλαινα, είναι ένα έργο ανοιχτού κώδικα που διευκολύνει την ανάπτυξη εφαρμογών μέσα σε δοχεία λογισμικού. Η βασική λειτουργικότητά του ενεργοποιείται από δυνατότητες απομόνωσης πόρων του πυρήνα Linux, αλλά παρέχει ένα φιλικό προς το χρήστη API. Η πρώτη έκδοση κυκλοφόρησε το 2013 και έκτοτε έγινε εξαιρετικά δημοφιλής και χρησιμοποιείται ευρέως από πολλούς μεγάλους παίκτες όπως eBay, Spotify, Baidu και άλλα . Στον τελευταίο γύρο χρηματοδότησης, Ο Ντόκερ έχει προσγειώσει τεράστια 95 εκατομμύρια δολάρια , και είναι σε καλό δρόμο να γίνει βασικό στοιχείο Υπηρεσίες DevOps .



Μεταφορά εμπορευμάτων

Η φιλοσοφία πίσω από το Docker θα μπορούσε να απεικονιστεί με την ακόλουθη απλή αναλογία. Στη διεθνή βιομηχανία μεταφορών, τα εμπορεύματα πρέπει να μεταφέρονται με διαφορετικά μέσα όπως περονοφόρα ανυψωτικά οχήματα, φορτηγά, τρένα, γερανοί και πλοία. Αυτά τα προϊόντα διατίθενται σε διαφορετικά σχήματα και μεγέθη και έχουν διαφορετικές απαιτήσεις αποθήκευσης: σάκοι ζάχαρης, δοχεία γάλακτος, φυτά κ.λπ. Ιστορικά, ήταν μια επώδυνη διαδικασία ανάλογα με τη χειροκίνητη παρέμβαση σε κάθε σημείο διέλευσης για φόρτωση και εκφόρτωση.



τι είναι το pmo στη διαχείριση έργου

Ένα άμαξα, ένα φορτηγό, και ένα φορτηγό μεταφοράς, όλα τα εμπορεύματα μεταφοράς

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



Μεταφορά με εμπορευματοκιβώτια ξηράς και θαλάσσης

Και εδώ έρχεται το Docker και φέρνει παρόμοια οφέλη στο λογισμικό βιομηχανία.



Πώς διαφέρει από τις εικονικές μηχανές;

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

Διάγραμμα σύγκρισης εικονικών μηχανών (VM) και κοντέινερ



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

Καθώς και οι δύο τεχνολογίες έχουν διαφορετικά πλεονεκτήματα, είναι σύνηθες να βρίσκουμε συστήματα που συνδυάζουν εικονικές μηχανές και δοχεία. Ένα τέλειο παράδειγμα είναι ένα εργαλείο που ονομάζεται Boot2Docker που περιγράφεται στην ενότητα εγκατάστασης του Docker.



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

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

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



Στη δεξιά πλευρά έχουμε εικόνες και κοντέινερ. Μπορείτε να κατεβάσετε εικόνες από τα μητρώα ρητά (docker pull imageName) ή σιωπηρά κατά την εκκίνηση ενός κοντέινερ. Μόλις ληφθεί η εικόνα, αποθηκεύεται προσωρινά στην κρυφή μνήμη.

Τα δοχεία είναι τα στιγμιότυπα των εικόνων - είναι το ζωντανό πράγμα. Θα μπορούσαν να λειτουργούν πολλά κοντέινερ με βάση την ίδια εικόνα.

Στο κέντρο, υπάρχει ο δαίμονας Docker υπεύθυνος για τη δημιουργία, λειτουργία και παρακολούθηση κοντέινερ. Φροντίζει επίσης την κατασκευή και αποθήκευση εικόνων. Τέλος, στην αριστερή πλευρά υπάρχει ένας πελάτης Docker. Μιλά στον δαίμονα μέσω HTTP. Οι υποδοχές Unix χρησιμοποιούνται όταν βρίσκονται στο ίδιο μηχάνημα, αλλά η απομακρυσμένη διαχείριση είναι δυνατή μέσω API που βασίζεται σε HTTP.

Εγκατάσταση του Docker

Για τις πιο πρόσφατες οδηγίες πρέπει πάντα να ανατρέξετε στο επίσημη τεκμηρίωση .

Το Docker εκτελείται εγγενώς στο Linux, οπότε ανάλογα με την κατανομή στόχων θα μπορούσε να είναι τόσο εύκολο όσο το sudo apt-get install docker.io. Ανατρέξτε στην τεκμηρίωση για λεπτομέρειες. Κανονικά στο Linux, προπληρώνετε τις εντολές Docker με sudo, αλλά θα το παραλείψουμε σε αυτό το άρθρο για λόγους σαφήνειας.

Καθώς ο δαίμονας Docker χρησιμοποιεί λειτουργίες πυρήνα για Linux, δεν είναι δυνατό να εκτελέσετε εγγενώς το Docker σε Mac OS ή Windows. Αντ 'αυτού, θα πρέπει να εγκαταστήσετε μια εφαρμογή που ονομάζεται Boot2Docker. Η εφαρμογή αποτελείται από μια εικονική μηχανή VirtualBox, το ίδιο το Docker και τα βοηθητικά προγράμματα διαχείρισης Boot2Docker. Μπορείτε να ακολουθήσετε τις επίσημες οδηγίες εγκατάστασης για MacOS και Παράθυρα για να εγκαταστήσετε το Docker σε αυτές τις πλατφόρμες.

Χρησιμοποιώντας το Docker

Ας ξεκινήσουμε αυτήν την ενότητα με ένα γρήγορο παράδειγμα:

τι είναι ένα γωνιακό συστατικό
docker run phusion/baseimage echo 'Hello Moby Dock. Hello Molly.'

Πρέπει να δούμε αυτήν την έξοδο:

Hello Moby Dock. Hello Molly.

Ωστόσο, πολλά περισσότερα έχουν συμβεί πίσω από τα παρασκήνια από ό, τι νομίζετε:

  • Η εικόνα «phusion / baseimage» λήφθηκε από το Docker Hub (εάν δεν ήταν ήδη στην τοπική κρυφή μνήμη)
  • Ένα κοντέινερ βασισμένο σε αυτήν την εικόνα ξεκίνησε
  • Η εντολή πέταξε έξω εκτελέστηκε εντός του κοντέινερ
  • Το κοντέινερ σταμάτησε όταν τερματίστηκε η εντολή

Κατά την πρώτη εκτέλεση, ενδέχεται να παρατηρήσετε καθυστέρηση πριν από την εκτύπωση του κειμένου στην οθόνη. Εάν η εικόνα είχε προσωρινά αποθηκευτεί τοπικά, όλα θα είχαν πάρει ένα κλάσμα του δευτερολέπτου. Λεπτομέρειες σχετικά με το τελευταίο κοντέινερ μπορούν να ανακτηθούν εκτελώντας docker ps -l:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES af14bec37930 phusion/baseimage:latest 'echo 'Hello Moby Do 2 minutes ago Exited (0) 3 seconds ago stoic_bardeen

Λήψη της επόμενης κατάδυσης

Όπως μπορείτε να πείτε, η εκτέλεση μιας απλής εντολής στο Docker είναι τόσο εύκολη όσο η εκτέλεση απευθείας σε ένα τυπικό τερματικό. Για να δείξουμε μια πιο πρακτική περίπτωση χρήσης, σε όλο το υπόλοιπο αυτού του άρθρου, θα δούμε πώς μπορούμε να χρησιμοποιήσουμε το Docker για να αναπτύξουμε μια απλή εφαρμογή διακομιστή ιστού. Για να διατηρήσουμε τα πράγματα απλά, θα γράψουμε ένα πρόγραμμα Java που χειρίζεται αιτήματα HTTP GET στο «/ ping» και θα ανταποκρίνεται με τη συμβολοσειρά «pong n».

import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import com.sun.net.httpserver.HttpServer; public class PingPong { public static void main(String[] args) throws Exception { HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); server.createContext('/ping', new MyHandler()); server.setExecutor(null); server.start(); } static class MyHandler implements HttpHandler { @Override public void handle(HttpExchange t) throws IOException { String response = 'pong '; t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); os.write(response.getBytes()); os.close(); } } }

Dockerfile

Πριν μεταβείτε και δημιουργήσετε τη δική σας εικόνα Docker, είναι καλή πρακτική να ελέγξετε πρώτα εάν υπάρχει ήδη στο Docker Hub ή σε ιδιωτικά μητρώα στα οποία έχετε πρόσβαση. Για παράδειγμα, αντί να εγκαταστήσουμε τους εαυτούς μας Java, θα χρησιμοποιήσουμε μια επίσημη εικόνα: java:8.

Για να δημιουργήσουμε μια εικόνα, πρώτα πρέπει να αποφασίσουμε για μια βασική εικόνα που πρόκειται να χρησιμοποιήσουμε. Δηλώνεται με ΑΠΟ εντολή. Εδώ, είναι μια επίσημη εικόνα για Java 8 από το Docker Hub. Θα το αντιγράψουμε στο αρχείο Java εκδίδοντας ένα ΑΝΤΙΓΡΑΦΟ εντολή. Στη συνέχεια, θα το συντάξουμε ΤΡΕΞΙΜΟ . ΕΚΘΕΤΩ Η οδηγία υποδηλώνει ότι η εικόνα θα παρέχει μια υπηρεσία σε μια συγκεκριμένη θύρα. ΣΗΜΕΙΟ ΕΙΣΟΔΟΥ είναι μια οδηγία που θέλουμε να εκτελέσουμε κατά την εκκίνηση ενός κοντέινερ που βασίζεται σε αυτήν την εικόνα και CMD υποδεικνύει τις προεπιλεγμένες παραμέτρους που θα μεταβιβαστούμε σε αυτήν.

FROM java:8 COPY PingPong.java / RUN javac PingPong.java EXPOSE 8080 ENTRYPOINT ['java'] CMD ['PingPong']

Αφού αποθηκεύσουμε αυτές τις οδηγίες σε ένα αρχείο που ονομάζεται 'Dockerfile', μπορούμε να δημιουργήσουμε την αντίστοιχη εικόνα Docker εκτελώντας:

docker build -t toptal/pingpong .

Η επίσημη τεκμηρίωση για το Docker έχει ένα ενότητα αφιερωμένη στις βέλτιστες πρακτικές σχετικά με το γράψιμο του Dockerfile.

Εμπορευματοκιβώτια τρεξίματος

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

docker run -d -p 8080:8080 toptal/pingpong

που -p [port-on-the-host]: [port-in-the-container] δηλώνει τη χαρτογράφηση θυρών στον κεντρικό υπολογιστή και το κοντέινερ αντίστοιχα. Επιπλέον, λέμε στο Docker να τρέξει το κοντέινερ ως διαδικασία δαίμονα στο παρασκήνιο καθορίζοντας -ρε . Μπορείτε να ελέγξετε εάν η εφαρμογή διακομιστή ιστού εκτελείται προσπαθώντας να αποκτήσετε πρόσβαση στο 'http: // localhost: 8080 / ping'. Σημειώστε ότι σε πλατφόρμες όπου χρησιμοποιείται το Boot2docker, θα πρέπει να αντικαταστήσετε το 'localhost' με τη διεύθυνση IP της εικονικής μηχανής όπου εκτελείται το Docker.

Σε Linux:

curl http://localhost:8080/ping

Σε πλατφόρμες που απαιτούν Boot2Docker:

curl $(boot2docker ip):8080/ping

Εάν όλα πάνε καλά, θα πρέπει να δείτε την απάντηση:

pong

Hurray, το πρώτο μας προσαρμοσμένο κοντέινερ Docker είναι ζωντανό και κολυμπά! Θα μπορούσαμε επίσης να ξεκινήσουμε το κοντέινερ σε διαδραστική λειτουργία -α- . Στην περίπτωσή μας, θα παρακάμψουμε το σημείο εισόδου εντολή, ώστε να έχουμε ένα τερματικό bash. Τώρα μπορούμε να εκτελέσουμε τις εντολές που θέλουμε, αλλά η έξοδος από το κοντέινερ θα το σταματήσει:

docker run -i -t --entrypoint='bash' toptal/pingpong

Υπάρχουν πολλές ακόμη διαθέσιμες επιλογές για την εκκίνηση των κοντέινερ. Ας καλύψουμε μερικά ακόμη. Για παράδειγμα, εάν θέλουμε να διατηρήσουμε δεδομένα εκτός του κοντέινερ, θα μπορούσαμε να μοιραστούμε το σύστημα αρχείων κεντρικού υπολογιστή με το κοντέινερ χρησιμοποιώντας -β . Από προεπιλογή, η λειτουργία πρόσβασης είναι ανάγνωση-εγγραφή, αλλά θα μπορούσε να αλλάξει σε λειτουργία μόνο για ανάγνωση προσαρτώντας :ro στη διαδρομή έντασης εντός του κοντέινερ. Οι τόμοι είναι ιδιαίτερα σημαντικοί όταν πρέπει να χρησιμοποιήσουμε τυχόν πληροφορίες ασφαλείας, όπως διαπιστευτήρια και ιδιωτικά κλειδιά μέσα στα δοχεία, τα οποία δεν πρέπει να αποθηκεύονται στην εικόνα. Επιπλέον, θα μπορούσε επίσης να αποτρέψει την επανάληψη δεδομένων, για παράδειγμα, χαρτογραφώντας το τοπικό αποθετήριο Maven στο κοντέινερ για να σας σώσει από τη λήψη του Διαδικτύου δύο φορές.

Ο κόμβος js κάνει την ασύγχρονη κλήση σύγχρονη

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

docker run -p 9999:8080 --link otherContainerA --link otherContainerB -v /Users/$USER/.m2/repository:/home/user/.m2/repository toptal/pingpong

Άλλες λειτουργίες κοντέινερ και εικόνας

Δεν αποτελεί έκπληξη το γεγονός ότι η λίστα των λειτουργιών που μπορεί να εφαρμοστεί στα κοντέινερ και τις εικόνες είναι αρκετά μεγάλη. Για συντομία, ας δούμε μερικά μόνο από αυτά:

  • stop - Σταματά ένα τρέξιμο κοντέινερ.
  • start - Ξεκινά ένα σταματημένο κοντέινερ.
  • commit - Δημιουργεί μια νέα εικόνα από τις αλλαγές ενός κοντέινερ.
  • rm - Αφαιρεί ένα ή περισσότερα δοχεία.
  • rmi - Αφαιρεί μία ή περισσότερες εικόνες.
  • ps - Παραθέτει κοντέινερ.
  • εικόνες - Εμφανίζει εικόνες.
  • exec - Εκτελεί μια εντολή σε ένα κοντέινερ που εκτελείται.

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

docker exec -i -t bash

Σύνθεση Docker για τον Κόσμο της Μικροεξυπηρέτησης

Εάν έχετε κάτι παραπάνω από δύο διασυνδεδεμένα δοχεία, είναι λογικό να χρησιμοποιήσετε ένα εργαλείο όπως λιμενεργάτης . Σε ένα αρχείο διαμόρφωσης, περιγράφετε πώς να ξεκινήσετε τα κοντέινερ και πώς πρέπει να συνδέονται μεταξύ τους. Ανεξάρτητα από την ποσότητα των εμπορευματοκιβωτίων που εμπλέκονται και τις εξαρτήσεις τους, θα μπορούσατε να τα έχετε όλα σε λειτουργία με μία εντολή: docker-compose up.

Docker in the Wild

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

Ανάπτυξη

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

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

Μπορείτε επίσης να έχετε ένα 'περιβάλλον ενσωμάτωσης' που εκτελείται τοπικά (ή σε CI) και να αντικαταστήσετε τα stubs με πραγματικές υπηρεσίες που εκτελούνται σε κοντέινερ Docker.

Δοκιμή / συνεχής ολοκλήρωση

Με το Dockerfile, είναι εύκολο να επιτύχετε αναπαραγωγές εκδόσεις. Οι Jenkins ή άλλες λύσεις CI μπορούν να ρυθμιστούν ώστε να δημιουργούν μια εικόνα Docker για κάθε έκδοση. Θα μπορούσατε να αποθηκεύσετε μερικές ή όλες τις εικόνες σε ένα ιδιωτικό μητρώο Docker για μελλοντική αναφορά.

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

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

Παραγωγή

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

γ******* συλλογή

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

docker stop container-id; docker run new-image

Και αν κάτι πάει στραβά κατά την ανάπτυξη μιας νέας έκδοσης, μπορείτε πάντα να κάνετε γρήγορη επαναφορά ή αλλαγή σε άλλο κοντέινερ:

docker stop container-id; docker start other-container-id

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

Περίληψη

Μια καλή περίληψη του τι κάνει ο Docker περιλαμβάνεται στο δικό του σύνθημα: Κατασκευή, αποστολή, εκτέλεση .

  • Το Build - Docker σάς επιτρέπει να συνθέσετε την εφαρμογή σας από μικροϋπηρεσίες, χωρίς να ανησυχείτε για ασυνέπειες μεταξύ αναπτυξιακών και παραγωγικών περιβαλλόντων και χωρίς να κλειδώνετε σε οποιαδήποτε πλατφόρμα ή γλώσσα.
  • Το Ship - Docker σάς επιτρέπει να σχεδιάσετε ολόκληρο τον κύκλο ανάπτυξης εφαρμογών, δοκιμών και διανομής και να το διαχειριστείτε με μια συνεπή διεπαφή χρήστη.
  • Το Run - Docker σάς προσφέρει τη δυνατότητα να αναπτύξετε κλιμακωτές υπηρεσίες με ασφάλεια και αξιοπιστία σε μια μεγάλη ποικιλία πλατφορμών.

Καλή διασκέδαση κολύμπι με τις φάλαινες!

Μέρος αυτού του έργου είναι εμπνευσμένο από ένα εξαιρετικό βιβλίο Χρησιμοποιώντας το Docker από τον Adrian Mouat.

Δημιουργήστε ένα προσαρμοσμένο ρυθμιστικό πλήρους σελίδας με CSS και JavaScript

Διεπαφή Ιστού

Δημιουργήστε ένα προσαρμοσμένο ρυθμιστικό πλήρους σελίδας με CSS και JavaScript
Brutalist Web Design, Minimalist Web Design και το μέλλον του Web UX

Brutalist Web Design, Minimalist Web Design και το μέλλον του Web UX

Σχεδιασμός Διεπαφής Χρήστη

Δημοφιλείς Αναρτήσεις
Senior Full-stack Engineer, Talent Post-hire Team
Senior Full-stack Engineer, Talent Post-hire Team
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Εισαγωγή στην επεξεργασία εικόνων Python στην Υπολογιστική Φωτογραφία
Λειτουργίες παραθύρου εισαγωγής στο SQL
Λειτουργίες παραθύρου εισαγωγής στο SQL
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Εγκατάσταση του Django στο IIS: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
Φαίνεται ενθουσιασμό - Μέσα στην αναπτυσσόμενη βιομηχανία ομορφιάς
 
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Αρχιτεκτονική προσανατολισμένη στην υπηρεσία με AWS Lambda: Ένα βήμα προς βήμα εκπαιδευτικό πρόγραμμα
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Σχεδιασμός παρουσίασης και τέχνη της οπτικής αφήγησης
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
Μια βαθιά ματιά στο JSON εναντίον XML, Μέρος 3: XML και το μέλλον του JSON
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
5 Ερωτήσεις που πρέπει να υποβάλει ένα Master Scrum πριν εγγραφείτε σε μια εκκίνηση
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Τρεις αρχές ανάπτυξης δεδομένων αποθήκης
Δημοφιλείς Αναρτήσεις
  • γιατί το json είναι καλύτερο από το xml
  • Ποιο από αυτά χρησιμοποιείται ως μέτρο του συνολικού ποσού των διαθέσιμων ταμειακών ροών από ένα έργο;
  • για τι χρησιμεύει το ρουμπίνι στις ράγες
  • πώς να εκτιμήσετε ένα ipo
  • Παράδειγμα ελέγχου ταυτότητας jwt boot ελατηρίου
  • web εφαρμογή που χρησιμοποιεί node js
Κατηγορίες
  • Επιστήμη Δεδομένων Και Βάσεις Δεδομένων
  • Κερδοφορία & Αποδοτικότητα
  • Σχεδιασμός Ux
  • Κινητό
  • © 2022 | Ολα Τα Δικαιώματα Διατηρούνται

    portaldacalheta.pt