diff --git a/docs/modules/intro/pages/intro.adoc b/docs/modules/intro/pages/intro.adoc deleted file mode 100644 index b53f104..0000000 --- a/docs/modules/intro/pages/intro.adoc +++ /dev/null @@ -1,253 +0,0 @@ -= Docker Intro -Docker -:idprefix: -:idseparator: - -:!example-caption: -:!table-caption: -:page-pagination: -:experimental: - -== Docker Engine ή Docker -=== Τι είναι το docker. -[.text-justify] -To Docker είναι μια πλατφόρμα λογισμικού ανοιχτού κώδικα που υλοποιεί -εικονικοποίηση (virtualization) σε επίπεδο λειτουργικού Συστήματος. -Ουσιαστικά το Docker προσφέρει την δυνατότητα της άμεσης ανάπτυξης -εφαρμογών στα Container του χωρίς την ανάγκη εγκατάστασης αυτών στον -υπολογιστή μας. Το Docker χρησιμοποιεί στοιχεία από το λειτουργικό -σύστημα που είναι εγκατεστημένο. Λειτουργεί ως μία υπηρεσία στον -υπολογιστή μας που χρησιμοποιεί πόρους μόνο όταν τους χρειάζεται αρκεί -να τρέχει σε λειτουργικό σύστημα Linux. Αυτή είναι και μία από τις -μεγαλύτερες διαφορές του με μία εικονική μηχανή (virtual machine) που -δεσμεύει μόνιμα πόρους ανεξάρτητα από το ποσοστό λειτουργίας της (εικόνα -2). Προσφέρει και αυτό πλήρη απομόνωση μεταξύ των εφαρμογών που υπάρχουν -στα Container εξασφαλίζοντας έτσι ασφάλεια παρόμοια με αυτή των -συμβατικών εικονικών μηχανών. - -[.text-center] -.Docker vs Virtual Machine -image::intro:docker_various_os2.png[] - -==== Container. -[.text-justify] -Το Container είναι είναι ένα πακέτο λογισμικού που προέρχονται από -Docker images και σε συνδυασμό με ρυθμίσεις που κάνει ο προγραμματιστής -δημιουργείται ένα Container - -==== _Docker Images_ -[.text-justify] -Τα Docker images είναι έτοιμα Container ή βάσεις για να δημιουργήσουμε -τα δικά μας containers και υπάρχει μεγάλη ποικιλία τους στο διαδίκτυο. Ο -επίσημος χώρος αποθήκευσης των Docker images είναι το https://hub.docker.com/[Docker hub] -αλλά υπάρχουν και πολλά άλλα ανεπίσημα, αυτοί οι χώροι αποθήκευσης των images -ονομάζονται Docker registries. -[.text-justify] -Όταν ο προγραμματιστής εκτελέσει την εντολή δημιουργίας Container, το -Docker θα αναζητήσει το image πρώτα τοπικά στον υπολογιστή που -εκτελείται εάν υπάρχει, εάν δεν το βρει θα το αναζητήσει στο registry -που έχουμε δηλώσει, το Docker Hub είναι το προκαθορισμένο registry του -Docker κατά την εγκατάσταση του. Τέλος αφού βρεθεί με επιτυχία το image -που αναζητήθηκε θα το κατεβάσει από το registry στον υπολογιστή μας και -θα δημιουργήσει το Container (εικόνα 3). - -[.text-center] -.Διαδικασία Δημιουργίας Container -image::intro:small_container_creation2.png[700,700] - -[.text-justify] -Το Docker δίνει την δυνατότητα να κατεβούν από το registry τοπικά στον -υπολογιστή images χωρίς την δημιουργία Container (Docker pull), αλλά και -να ανεβούν στο registry τροποποιημένα από προγραμματιστές images (Docker -push). - -=== Εγκατάσταση Docker -[.text-justify] -Χρησιμοποιώντας κάποιο πρόγραμμα που επιτρέπει συνδέσεις μέσω -πρωτοκόλλου SSH εγκαθιδρύουμε μία σύνδεση με το Raspberry. -[.text-justify] -Αφού γίνει η σύνδεση και πριν ξεκινήσει η διαδικασία εγκατάστασης του -Docker πρέπει να πληκτρολογηθεί παρακάτω εντολή για ενημέρωση του -συστήματος: - - sudo apt-get update && sudo apt-get -y upgrade - -[.text-justify] -Με την ολοκλήρωση της διαδικασίας εκτελούμε την ακόλουθη εντολή ώστε να -γίνει η λήψη από την επίσημη ιστοσελίδα το αυτοματοποιημένο script -εγκατάστασης του Docker. - - curl -fsSL https://get.docker.com -o get-docker.sh - -Στην συνέχεια εκτελούμε το script. - - sudo sh get-docker.sh - -[.text-justify] -και με την ολοκλήρωση του θα μας εμφανίσει την έκδοση Docker που -εγκατέστησε και θα μας προτείνει να εισάγουμε τον χρήστη στην ομάδα του -Docker ώστε να μην είναι αναγκαία η χρήση του SUDO για την χρήση του -Docker (εικόνα: 4). - -[.text-center] -.Ολοκλήρωση εγκατάστασης Docker -image::intro:docker_install2.png[] - -Για την πρόσθεση του χρήση στην ομάδα του Docker πληκτρολογούμε. - - sudo usermod -aG docker username - -[.text-justify] -Σε αυτό το σημείο πρέπει να γίνει αποσύνδεση και επανασύνδεση από το -σύστημα ώστε να γίνει οι φόρτωση των αναγκαίων μεταβλητών συστήματος για -την χρήση του Docker. Ένας άλλος τρόπος για να αποφευχθεί η διαδικασία -αυτή είναι να πληκτρολογήσουμε - - su username - - exit - -[.text-justify] -με αυτόν τον τρόπο αναγκάζουμε το σύστημα να φορτώσει εκ νέου τις -μεταβλητές χωρίς την ανάγκη να κλείσουμε και να εγκαθιδρύσουμε την -σύνδεση με το Raspberry εκ νέου. - -==== Δοκιμή λειτουργίας -[.text-justify] -Για την δοκιμή της εγκατάστασης ως προς την λειτουργικότητα της θα -εκτελέσουμε την πρώτη μας εντολή που συσχετίζεται με το Docker που είναι -η δημιουργία ενός δοκιμαστικού Container με το όνομα Hello-World. - - docker run hello-world - -[.text-center] -.Δοκιμαστικό Container Hello World -image::intro:docker_hello-world2.png[] - -[.text-justify] -Όπως βλέπουμε στην γραμμή 2 το Docker αναζήτησε το image τοπικά και αφού -δεν το βρήκε συνέχισε την αναζήτηση του στο προεπιλεγμένο registry -(Docker Hub), όπου και αναζήτησε εκεί πλέον το image με το όνομα που -αυτό, το κατέβασε στο Raspberry και δημιούργησε ένα Container όπου και -το εκτέλεσε. Στην οθόνη βλέπουμε τα αποτελέσματα των προκαθορισμένων -ρυθμίσεων του image. Όπως βλέπουμε στην εικόνα: 5 η εκτέλεση του -Container μας εμφανίζει τα βασικά βήματα που ακολουθήθηκαν 1-4, από την -στιγμή που πληκτρολογήσαμε την εντολή μέχρι την εμφάνιση του μηνύματος . - -==== Λήψη image -[.text-justify] -Στην συνέχεια για τις ανάγκες μας θα χρειαστούμε να κατεβάσουμε ένα -image από από το repository του λειτουργικού συστήματος Ubuntu 16.04 -server. - - docker pull ubuntu:16.04 - -[.text-center] -.Λήψη του Ubuntu Image -image::intro:ubuntu_pull2.png[] - -[.text-justify] -Με την ολοκλήρωση του μπορούμε να επιβεβαιώσουμε ότι το image βρίσκεται -τοπικά στον υπολογιστή μας με την εντολή - - docker images - -[.text-justify] -Βλέπουμε το image με όνομα Ubuntu και με ετικέτα 16.04 βρίσκεται στην -κορυφή της λίστας μας (εικόνα: 7). Η εμφάνιση από τα image γίνεται πάντα -από το νεότερο προς το παλαιότερο. - -[.text-center] -.Προβολή όλων των Images στο σύστημα -image::intro:docker_images2_2.png[] - -==== Δημιουργία container_ - -[.text-justify] -Μετά από την λήψη του image η δημιουργία του Container θα γίνει με την -παρακάτω εντολή - - docker run -it -d ubuntu:16.04 - -[.text-justify] -Με την εισαγωγή του -i το Docker θα κρατήσει την δυνατότητα εισόδου -εντολών στο Container ανοιχτή ακόμα και εάν δεν γίνει άμεση σύνδεση σε -αυτό, το -t ενεργοποιεί μία κονσόλα τερματικού στο Container και το -d -δηλώνει την λειτουργία του Container παραμείνει στο παρασκήνιο, το -ubuntu:16.04 είναι το όνομα που έχει το image απ’ όπου θέλουμε να -δημιουργήσουμε το Container. Για να δούμε τα Container που είναι ενεργά -και τρέχουν στον υπολογιστή μας πληκτρολογώντας την εντολή - - docker ps - -[.text-center] -.Εμφάνιση ενεργών Container -image::intro:docker_ps2.png[] - -[.text-justify] -Όπως βλέπουμε και στην εικόνα: 8 η εντολή μας δίνει διάφορες πληροφορίες -για τα Container που είναι ενεργά στον υπολογιστή μας. Το πεδίο -Container ID είναι το μοναδικό αναγνωριστικό του Container, το πεδίο -IMAGE δηλώνει σε ποιο image είναι βασισμένο, το πεδίο COMMAND είναι η -εντολή/εντολές που θα εκτελεστούν κατά την έναρξη του Container, το -πεδίο CREATED πότε δημιουργήθηκε το Container, το πεδίο STATUS ποια από -τις 7 πιθανές καταστάσεις βρίσκεται ( created, restarting, running, -removing, paused, exited, dead), Το πεδίο PORTS δείχνει ποια/ποιες θύρες -του υπολογιστή μας έχουμε δεσμεύσει και αντιστοιχίσει με -αντίστοιχη/αντίστοιχες θύρες στο Container και τέλος το πεδίο NAME μας -δείχνει το τυχαίο όνομα που έδωσε το docker όνομα στο Container που -δημιουργήθηκε. - -==== Δημιουργία Container με αντιστοίχηση θύρας και απόδοση ονόματος _ -[.text-justify] -Για την δημιουργία ενός Container με αντιστοίχηση θύρας και δικός όνομα -θα πρέπει να συμπληρώσουμε στην προηγούμενη εντολή μας μερικά πεδία -ακόμα, -p θύρα_υπολογιστή:θύρα_container, --name=όνομα_επιλογής, έτσι η -εντολή θα διαμορφωθεί ως εξής. - - docker run -it -d -p 2000:22 –name=Server ubuntu:16.04 - - docker ps (εικόνα: 9). -[.text-center] -.Αντιστοίχιση θυρών ονοματοδοσία Container -image::intro:named_container_asigned_ports2.png[] - -[.text-justify] -Όπως βλέπουμε στην εικόνα: 9 δημιουργήθηκε ένα καινούργιο Container με -το όνομα Server και με την θύρα 2000 του υπολογιστή μας να αντιστοιχεί -στην θύρα 22 του Container. Η επιλογή των θυρών μπορεί να είναι -οποιαδήποτε ανάλογα με τις ανάγκες μας. - -=== Είσοδος στο Container -[.text-justify] -Αφού δημιουργήσαμε το Container μας πρέπει να συνδεθούμε σε αυτό για να -κάνουμε περαιτέρω ρυθμίσεις. Το image απ’ όπου δημιουργήθηκε το -Container μας δεν είναι έκδοση Ubuntu Server αλλά ούτε και Ubuntu -Desktop, δεν υπάρχουν σαν εκδόσεις στο Docker Hub είναι μόνο τα βασικά -στοιχεία και προγράμματα του λειτουργικού Ubuntu. Η σύνδεση στο -Container θα πραγματοποιηθεί με την παρακάτω εντολή - - docker exec -it Server /bin/bash - -[.text-justify] -Στην παραπάνω εντολή το όνομα του Container μπορεί να αντικατασταθεί με -το Container ID που βλέπουμε στην εκτέλεση της εντολής docker ps - -[.text-justify] -Με την εκτέλεση της εντολής θα επιστραφεί γραμμή εντολών μέσα από το -Container πλέον και η μορφή της θα είναι -root@fac448014031 (εικόνα: 10). - -[.text-center] -.Γραμμή εντολώ μέσα απο το Container -image::intro:command_line_container.png[] - -[.text-justify] -Εκτελούμε την εντολή - - apt-get update && sudo apt-get -y upgrade - -[.text-justify] -Το πρώτο σκέλος της εντολής θα ενημερώσει τα αποθετήρια του λειτουργικού -συστήματος και στην συνέχεια θα γίνει η εγκατάσταση των απαιτούμενων -πακέτων χωρίς την προτροπή επιβαιβέωσης. -