Εδώ βλέπετε τις διαφορές μεταξύ της επιλεγμένης έκδοσης και της τρέχουσας έκδοσης της σελίδας.
Επόμενη αναθεώρηση | Προηγούμενη αναθεώρηση | ||
docker [2020/01/23 11:49] chiossif δημιουργήθηκε |
docker [2020/11/21 09:52] (τρέχουσα) |
||
---|---|---|---|
Γραμμή 2: | Γραμμή 2: | ||
Όσοι οι πιστοί προσέλθετε :-) | Όσοι οι πιστοί προσέλθετε :-) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ======Καλωσορίσατε στo Docker!====== | ||
+ | |||
+ | To wiki αυτό έγινε για να προσφέρει υποστήριξη για το Docker. Παρακάτω θα βρείτε τις απαραίτητες πληροφορίες που χρειάζεστε για να ξεκινήσετε να παίζεται με αυτό το πολύ χρήσιμο εργαλείο. | ||
+ | |||
+ | =====Εισαγωγή===== | ||
+ | |||
+ | |||
+ | ====Τι είναι το Docker==== | ||
+ | |||
+ | «Το Docker είναι μία ανοιχτού κώδικα πλατφόρμα η οποία αυτόματοποιεί την ανάπτυξη εφαρμογών με τη χρήση πακέτων ονόματι container παρέχοντας ένα ακόμη επίπεδο αφαίρεσης και αυτοματοποίησης στην εικονικοποίηση(virtualization) σε επίπεδο λειτουργικού συστήματος.» | ||
+ | |||
+ | Με πιο απλά λόγια το Docker είναι μία εφαρμογή - ή καλύτερα ένα εικονικό περιβάλλον - το οποίο επιτρέπει στους προγραμματιστές να αναπτύσσουν και να ελέγχουν εύκολα τα προγράμματά τους σε ένα εικονικό πακέτο/ | ||
+ | |||
+ | Αυτό που κάνει το docker να διαφέρει από τα άλλα εικονικά συστήματα(virtual machines) είναι ότι χρησιμοποιεί όλους τους πόρους του υπολογιστή και δεσμεύει μνήμη όταν χρειάζεται, | ||
+ | |||
+ | ====Τι είναι το Container==== | ||
+ | |||
+ | Όπως αναφέρθηκε και παραπάνω συνήθως για τον έλεγχο συμβατότητας ενός προγράμματος με ένα λειτουργικό σύστημα χρησιμοποιείται κάποιο εικονικό μηχάνημα/ | ||
+ | |||
+ | Τα Containers προσεγγίζουν το πρόβλημα διαφορερτικά. Χρησιμοποιούν τους χαμηλού επιπέδου πόρους του λειτουργικού συστήματος, | ||
+ | |||
+ | =====Εγκατάσταση του Docker στα Windows η MacOS===== | ||
+ | |||
+ | Για την εγκατάσταση του Docker σε Window ή MacOS ο χρήστης χρειάζεται απλώς να ανατρέξει στην ιστοσελίδα του Docker και να κατεβάσει το εκτελέσιμο που αντιστοιχεί στο λειτουργικό του σύστημα ([[https:// | ||
+ | |||
+ | =====Εγκατάσταση του Docker σε Linux λειτουργικό σύστημα===== | ||
+ | |||
+ | Η εγκατάσταση του Docker σε λειτουργικό σύστημα Linux γίνεται με τη επιλογή του απαραίτητου πακέτου από κάποιο αποθετήριο. | ||
+ | |||
+ | |||
+ | |||
+ | ====Εγκατάσταση σε Ubuntu:==== | ||
+ | |||
+ | ===Ενημέρωση συστήματος (προαιρετικό βήμα)=== | ||
+ | |||
+ | Πριν από την εγκατάσταση κάθε πακέτουσυνιστάται να γίνεται ενημέρωση της λίστα των πακέτων και αναβάθμιση του συστήματος. Αυτό επιτυγχάνεται με την εκτέλεση των παρακάτω εντολών: | ||
+ | |||
+ | ~$ sudo apt-get update && sudo apt-get upgrade | ||
+ | |||
+ | ===Εγκατάσταση βοηθητικών πακέτων=== | ||
+ | |||
+ | Για να λειτουργήσει σωστά το Docker χρειάζεται να γίνει εγκατάσταση κάποιων βοηθητικών πακέτων. Τα πακέτα αυτά μπορεί να είναι ήδη εγκατεστημένα στο σύστημα, | ||
+ | |||
+ | ~$ sudo apt-get install curl apt-transport-https ca-certificates software-properties-common | ||
+ | |||
+ | ===Εισαγωγή του αποθετήριου=== | ||
+ | |||
+ | Πριν την εγκατάσταση του πακέτου, | ||
+ | |||
+ | ~$ curl fsSL https:// | ||
+ | |||
+ | και στη συνέχεια να εισαχθεί το αποθετήριο στη λίστα με την εντολή: | ||
+ | |||
+ | ~$ sudo add-apt-repository “deb [arch=amd64] https:// | ||
+ | |||
+ | Τέλος γίνεται ενημέρωση της λίστας αποθετήριων με την εντολή: | ||
+ | |||
+ | ~$ sudo apt-get update | ||
+ | |||
+ | ===Εγκατάσταση του Docker=== | ||
+ | |||
+ | Η εγκατάσταση του Docker γίνεται με την εντολή: | ||
+ | |||
+ | ~$ sudo apt-get install docker-ce | ||
+ | |||
+ | ===Έλεγχος=== | ||
+ | |||
+ | Εαν όλα έχουν πάει καλά, τότε το Docker θα έχει εγκατασταθεί επιτυχώς και το docker.service θα είναι __ενεργοποιημένο (active)__. Για να ελεχθεί αυτό εκτελείται η παρακάτω εντολή: | ||
+ | |||
+ | ~$ sudo systemctl status docker | ||
+ | |||
+ | |||
+ | =====Βασικές Εντολές του Docker===== | ||
+ | |||
+ | Σε αυτή την ενότητα θα περιγραφούν οι βασικές εντολές του Docker. Η βασική σύνταξη των εντολών είναι η εξής: | ||
+ | |||
+ | ~$ sudo docker < | ||
+ | |||
+ | ====Χρήση των εντολών χωρίς sudo==== | ||
+ | |||
+ | Για τη χρήση των εντολών του Docker **χωρίς να χρειάζεται η χρήση της εντολής sudo** αρκεί να δημιουργηθεί στο σύστημα μία ομάδα docker και να εισαχθεί ο χρήστης σε αυτή την ομάδα. Αυτό επιτυγχάνεται με τις εντολές: | ||
+ | |||
+ | ~$ sudo groupadd docker | ||
+ | |||
+ | ~$ sudo usermod -aG docker $USER | ||
+ | |||
+ | Στη συνέχεια πρέπει να γίνει **log out** και **log in** για να ενημερωθεί το σύστημα. | ||
+ | |||
+ | |||
+ | ====Help==== | ||
+ | |||
+ | Χρησιμοποιείται για την εμφάνιση της βοήθειας του docker. Στη βοήθεια του docker εμφανίζονται συνοπτικά όλες οι εντολές που μπορούν να χρησιμοποιηθούν καθώς επίσης και μία συνοπτική εφαρμογή αυτών. | ||
+ | |||
+ | Η εντολή αυτή εκτελείται ως εξής: | ||
+ | |||
+ | ~$ docker help | ||
+ | |||
+ | ====Search==== | ||
+ | |||
+ | Με την εντολή αυτή ο χρήστης μπορεί να αναζητήσει το πλήθος των πακέτων που μπορεί να εγκαταστήσει στο εικονικό περιβάλλον docker. Αντί της εκτέλεσης της εντολής αυτής, ο χρήστης μπορεί να επισκευθεί την ιστοσελιδα [[https:// | ||
+ | |||
+ | Η εντολή αυτή συντάσσεται ως εξής: | ||
+ | |||
+ | ~$ docker search < | ||
+ | |||
+ | Για παράδειγμα εάν κάποιος θέλει να εγκαταστήσει το εικονικό περιβάλλον **ubuntu**, αλλά δεν ξέρει πως ονομάζεται το πακέτο ή θέλει κάποιο συγκεκριμένο πακέτο, | ||
+ | |||
+ | ~$ docker search ubuntu | ||
+ | |||
+ | Και θα του εμφανίσει μία λίστα με τα πακέτα που μπορεί να βρει επισκέπτοντας το σύνδεσμο [[http:// | ||
+ | |||
+ | ====Pull==== | ||
+ | |||
+ | Αφού βρεθεί το όνομα του πακέτου που θέλει να εγκαταστήσει, | ||
+ | |||
+ | ~$ docker pull < | ||
+ | |||
+ | Για παράδειγμα: | ||
+ | |||
+ | ~$ docker pull ubuntu | ||
+ | |||
+ | **Σημείωση: | ||
+ | |||
+ | Ένα παράδειγμα είναι η εγκατάσταση της **python** στο docker. Η εντολή | ||
+ | |||
+ | ~$ docker pull python | ||
+ | |||
+ | θα εγκαταστήσει την τελευταία εκδοχή της python, ενώ εάν θέλει την εκδοχή python2 θα πρέπει να εκτελέσει την εντολή: | ||
+ | |||
+ | ~$ docker pull python2 | ||
+ | |||
+ | ====Run==== | ||
+ | |||
+ | Η εντολή run χρησιμοποιείται για την ενεργοποίηση του πακέτου. Κάθε φορά που εκτελείται αυτή η εντολή, | ||
+ | |||
+ | Η εντολή συντάσσεται ως εξής: | ||
+ | |||
+ | ~$ docker run < | ||
+ | |||
+ | Για παράδειγμα: | ||
+ | |||
+ | ~$ docker -it --name ubuntu_env ubuntu | ||
+ | |||
+ | Όπου: | ||
+ | * | ||
+ | * | ||
+ | * **--name:** Λαμβάνει σαν όνομα του container την αμέσως επόμενη λέξη. | ||
+ | |||
+ | **Σημείωση: | ||
+ | |||
+ | ====Ps==== | ||
+ | |||
+ | Η εντολή αυτή εμφανίζει τα container και τις πληροφορίες αυτών. | ||
+ | |||
+ | ~$ docker ps < | ||
+ | |||
+ | Εδώ τίθεται σκόπιμο να σημειωθεί ότι εάν εκτελεστεί ως: | ||
+ | |||
+ | ~$ docker ps | ||
+ | |||
+ | Θα εμφανιστούν μόνο τα container που είναι ενεργά (active) εκείνη τη δεδομένη στιγμή. Για την εμφάνιση ώλων των container χρειάζεται να εκτελεστεί η εντολή: | ||
+ | |||
+ | ~$ docker ps -a | ||
+ | |||
+ | ====Stop==== | ||
+ | |||
+ | Με την εντολή αυτή απενεργοποιείται ένα container. Για την αναφορά στο container θα πρέπει να χρησιμοποιηθεί είτε το id, είτε το name του container. Για αυτο το λόγο είναι καλό να δίνεται πάντα κάποιο όνομα όταν δημιουργούνται container με την εντολή run. | ||
+ | |||
+ | Η εντολή αυτή συντάσσεται ως: | ||
+ | |||
+ | ~$ docker stop < | ||
+ | |||
+ | Για παράδειγμα: | ||
+ | |||
+ | ~$ docker stop ubuntu_env | ||
+ | |||
+ | ====Start==== | ||
+ | |||
+ | Η εντολή αυτή ενεργοποιεί ένα σταματημένο container. Αυτό που πρέπει να σημειωθεί είναι ότι η εντολή αυτή δεν δημιουργεί κάποιο container, αλλά ενεργοποιεί ένα υπάρχον. Για αυτό το λόγο δεν πρέπει να δημιουργηθεί σύγχηση με την εντολή **run** που περιγράφηκε παραπάνω (η εντολή run κάθε φορά που εκτελείται δημιουργεί νέο container). | ||
+ | |||
+ | Η εντολή συντάσσεται ως: | ||
+ | |||
+ | ~$ docker start < | ||
+ | |||
+ | Για παράδειγμα: | ||
+ | |||
+ | ~$ docker start -i ubuntu_env | ||
+ | |||
+ | ====Rm==== | ||
+ | |||
+ | Η εντολή αυτή χρησιμοποιείται για τη διαγραφή ενός ή παραπάνω container. Συντάσσεται ως: | ||
+ | |||
+ | ~$ docker rm < | ||
+ | |||
+ | Για παράδειγμα: | ||
+ | |||
+ | ~$ docker rm ubuntu_env | ||
+ | |||
+ | |||
+ | ====Rmi==== | ||
+ | |||
+ | Η εντολή αυτή χρησιμοποιείται για τη διαγραφή ενός ή παραπάνω εικονικού πακέτου. Συντάσσεται ως: | ||
+ | |||
+ | ~$ docker rmi <image package> | ||
+ | |||
+ | Για παράδειγμα: | ||
+ | |||
+ | ~$ docker rmi ubuntu | ||
+ | |||
+ | =====Από τη Θεωρεία στην Πράξη===== | ||
+ | |||
+ | Σε αυτή την ενότητα θα περιγραφεί η διαδικασία εγκατάστασης χρήσιμων εφαρμογών μέσα από το περιβάλλον του Docker. | ||
+ | |||
+ | ====Εγκατάσταση του Ubuntu==== | ||
+ | |||
+ | Η εγκατάσταση του λειτουργικού περιβάλλοντος του Ubuntu περιγράφηκε και παραπάνω. Αρκεί να εκτελεστεί η εντολή: | ||
+ | |||
+ | ~$ docker pull ubuntu | ||
+ | |||
+ | Με την εντολή αυτή θα πραγματοποιηθεί η εγκατάσταση της τελευταίας έκδοσης του λειτουργικού περιβάλλοντος Ubuntu. Για τη δημιουργία του container και την αλληλεπίδραση του χρήστη με το περιβάλλον του Ubuntu χρειάζεται να εκτελεστεί η εντολή: | ||
+ | |||
+ | ~$ docker run -it --name ubuntu_container ubuntu | ||
+ | |||
+ | Στη συνέχεια μπορούν να γίνουν πειράματα εκτελώντας διάφορες εντολές τερματικού, | ||
+ | |||
+ | ====Εγκατάσταση της Python==== | ||
+ | |||
+ | Για την εγκατάσταση της python αρκεί να εκτελεστεί η εντολή: | ||
+ | |||
+ | ~$ docker pull python | ||
+ | |||
+ | Η εντολή αυτή θα εγκαταστήσει την τελευταία έκδοση της python. Εάν κάποιος θέλει κάποια συγκεκριμένη έκδοση, | ||
+ | |||
+ | ~$ docker pull python: | ||
+ | |||
+ | Στη συνέχεια για τη δημιουργία του container αντίστοιχα εκτελείται η εντολή: | ||
+ | |||
+ | ~$ docker run --name python_container python |