Εργαλεία Χρήστη

Εργαλεία ιστότοπου


docker

Σύγκριση εκδόσεων

Εδώ βλέπετε τις διαφορές μεταξύ της επιλεγμένης έκδοσης και της τρέχουσας έκδοσης της σελίδας.

Σύνδεσμος σε αυτή την προβολή διαφορών.

Προηγούμενος έλεγχος και από τις δύο πλευρές Προηγούμενη αναθεώρηση
Επόμενη αναθεώρηση
Προηγούμενη αναθεώρηση
docker [2020/01/23 13:54]
John_Crabs
docker [2020/11/21 09:52] (τρέχουσα)
Γραμμή 2: Γραμμή 2:
  
 Όσοι οι πιστοί προσέλθετε :-) Όσοι οι πιστοί προσέλθετε :-)
 +
  
  
Γραμμή 8: Γραμμή 9:
 ======Καλωσορίσατε στo Docker!====== ======Καλωσορίσατε στo Docker!======
  
-To wiki αυτό έγινε για να προσφέρει υποστήριξη για την Docker. Το Docker είναι ένα εικονικό περιβάλλοντο οποίο μπορεί να χρησιμοποιηθεί για την εκτέλεση οποιασδήποτε εφαρμογής ή λειτουργικού περιβάλλοντος, καθώς επίσης και συνδυασμού αυτών χ για τον έλεγχο της συμβατότητας μιας εφαρμογής με ένα γραφικό περιβάλλον).+To wiki αυτό έγινε για να προσφέρει υποστήριξη για το Docker. Παρακάτω θα βρείτε τις απαραίτητες πληροφορίες που χρειάζεστε για να ξεκινήσετε να παίζεται με αυτό το πολύ χρήσιμο εργαλείο. 
 + 
 +=====Εισαγωγή===== 
 + 
 + 
 +====Τι είναι το Docker==== 
 + 
 +«Το Docker είναι μία ανοιχτού κώδικα πλατφόρμα η οποία αυτόματοποιεί την ανάπτυξη εφαρμογών με τη χρήση πακέτων ονόματι container παρέχοντας ένα ακόμη επίπεδο αφαίρεσης και αυτοματοποίησης στην εικονικοποίηση(virtualization) σε επίπεδο λειτουργικού συστήματος.» 
 + 
 +Με πιο απλά λόγια το Docker είναι μία εφαρμογή - ή καλύτερα ένα εικονικό περιβάλλον το οποίο επιτρέπει στους προγραμματιστές να αναπτύσσουν και να ελέγχουν εύκολα τα προγράμματά τους σε ένα εικονικό πακέτο/χώρο (που το docker ονομάζει container). Ακόμη πιο συνοπτικά επιτρέπει στον προγραμματιστή να εξετάζει τις εφαρμογές του σε ένα εικονικό περιβάλλον οποιουδήποτε λειτουργικού συστήματος.  
 + 
 +Αυτό που κάνει το docker να διαφέρει από τα άλλα εικονικά συστήματα(virtual machines) είναι ότι χρησιμοποιεί όλους τους πόρους του υπολογιστή και δεσμεύει μνήμη όταν χρειάζεται, κάνοντας το πιο αποδοτικό, αφού γίνεται καλύτερη διαχείσηση της μνήνης, σε αντίθεση με τα εικονικά συστήματα που δεσμεύουν συγκεκριμένη μνήμη και πόρους είτε τη χρειάζονται είτε όχι. 
 + 
 +====Τι είναι το Container==== 
 + 
 +Όπως αναφέρθηκε και παραπάνω συνήθως για τον έλεγχο συμβατότητας ενός προγράμματος με ένα λειτουργικό σύστημα χρησιμοποιείται κάποιο εικονικό μηχάνημα/σύστημα (virtual machine - VM). Ένα VM δημιουργεί ένα απομονωμένο λειτουργικό σύστημα - που συνήθως ονομάζεται guest - το οποίο χρησιμοποιεί ένα μεγάλο μέρος από τους πόρους του υπολογιστή. 
 + 
 +Τα Containers προσεγγίζουν το πρόβλημα διαφορερτικά. Χρησιμοποιούν τους χαμηλού επιπέδου πόρους του λειτουργικού συστήματος, για να παρέχουν όσο το δυνατόν περισσότερη απομόνωση όσο ένα σύστημα VM κερδίζοντας έτσι υπολογιστή δυνατότητα. Πιο απλά, το docker δημιουργεί έναν φάκελο, ο οποίος αντιπροσωπεύει το εκάστοται σύστημα και όλες οι ενέργειες/πειράματα που θα εκτελέσει ο προγραμματιστής θα επηρεάσουν μόνο το περιεχόμενο του αντίστοιχου φακέλου.
  
 =====Εγκατάσταση του Docker στα Windows η MacOS===== =====Εγκατάσταση του Docker στα Windows η MacOS=====
Γραμμή 17: Γραμμή 35:
  
 Η εγκατάσταση του Docker σε λειτουργικό σύστημα Linux γίνεται με τη επιλογή του απαραίτητου πακέτου από κάποιο αποθετήριο. Η εγκατάσταση του Docker σε λειτουργικό σύστημα Linux γίνεται με τη επιλογή του απαραίτητου πακέτου από κάποιο αποθετήριο.
 +
 +
  
 ====Εγκατάσταση σε Ubuntu:==== ====Εγκατάσταση σε Ubuntu:====
Γραμμή 40: Γραμμή 60:
 και στη συνέχεια να εισαχθεί το αποθετήριο στη λίστα με την εντολή: και στη συνέχεια να εισαχθεί το αποθετήριο στη λίστα με την εντολή:
  
-    ~$ sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs stable”+    ~$ sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs stable)
  
 Τέλος γίνεται ενημέρωση της λίστας αποθετήριων με την εντολή: Τέλος γίνεται ενημέρωση της λίστας αποθετήριων με την εντολή:
Γραμμή 57: Γραμμή 77:
  
     ~$ sudo systemctl status docker     ~$ sudo systemctl status docker
 +
 +
 +=====Βασικές Εντολές του Docker=====
 +
 +Σε αυτή την ενότητα θα περιγραφούν οι βασικές εντολές του Docker. Η βασική σύνταξη των εντολών είναι η εξής:
 +
 +    ~$ sudo docker <command> <flags> <option>
 +
 +====Χρήση των εντολών χωρίς sudo====
 +
 +Για τη χρήση των εντολών του Docker **χωρίς να χρειάζεται η χρήση της εντολής sudo** αρκεί να δημιουργηθεί στο σύστημα μία ομάδα docker και να εισαχθεί ο χρήστης σε αυτή την ομάδα. Αυτό επιτυγχάνεται με τις εντολές:
 +
 +    ~$ sudo groupadd docker
 +
 +    ~$ sudo usermod -aG docker $USER
 +
 +Στη συνέχεια πρέπει να γίνει **log out** και **log in** για να ενημερωθεί το σύστημα.
 +
 +
 +====Help====
 +
 +Χρησιμοποιείται για την εμφάνιση της βοήθειας του docker. Στη βοήθεια του docker εμφανίζονται συνοπτικά όλες οι εντολές που μπορούν να χρησιμοποιηθούν καθώς επίσης και μία συνοπτική εφαρμογή αυτών. 
 +
 +Η εντολή αυτή εκτελείται ως εξής:
 +
 +    ~$ docker help
 +
 +====Search====
 +
 +Με την εντολή αυτή ο χρήστης μπορεί να αναζητήσει το πλήθος των πακέτων που μπορεί να εγκαταστήσει στο εικονικό περιβάλλον docker. Αντί της εκτέλεσης της εντολής αυτής, ο χρήστης μπορεί να επισκευθεί την ιστοσελιδα [[https://hub.docker.com]].
 +
 +Η εντολή αυτή συντάσσεται ως εξής:
 +
 +    ~$ docker search <option>
 +
 +Για παράδειγμα εάν κάποιος θέλει να εγκαταστήσει το εικονικό περιβάλλον **ubuntu**, αλλά δεν ξέρει πως ονομάζεται το πακέτο ή θέλει κάποιο συγκεκριμένο πακέτο, τότε μπορεί να εκτελέσει την εντολή:
 +
 +    ~$ docker search ubuntu
 +
 +Και θα του εμφανίσει μία λίστα με τα πακέτα που μπορεί να βρει επισκέπτοντας το σύνδεσμο [[http://hub.docker.com/search?q=ubuntu&type=image]].
 +
 +====Pull====
 +
 +Αφού βρεθεί το όνομα του πακέτου που θέλει να εγκαταστήσει, το επόμενο βήμα είναι να το εγκαταστήσει στο εικονικό περιβάλλον. Αυτό επιτυγχάνεται με την εντολή:
 +
 +    ~$ docker pull <option>
 +
 +Για παράδειγμα:
 +
 +    ~$ docker pull ubuntu
 +
 +**Σημείωση:** Εάν το πακέτο έχει διάφορες εκδοχές, τότε συνίσταται το όνομα να συνοδεύεται και από τον αριθμό της εκδοχής, αλλιώς το docker από προεπιλογή θα εγκαταστήσει την τελευταία εκδοχή.
 +
 +Ένα παράδειγμα είναι η εγκατάσταση της **python** στο docker. Η εντολή
 +
 +    ~$ docker pull python
 +
 +θα εγκαταστήσει την τελευταία εκδοχή της python, ενώ εάν θέλει την εκδοχή python2 θα πρέπει να εκτελέσει την εντολή:
 +
 +    ~$ docker pull python2
 +
 +====Run====
 +
 +Η εντολή run χρησιμοποιείται για την ενεργοποίηση του πακέτου. Κάθε φορά που εκτελείται αυτή η εντολή, δημιουργείται ένα εικονικό περιβάλλον, το οποίο ονομάζεται container. Κάθε container έχει τα δικά του χαρακτηριστικά, με τα πιο σημαντικά να είναι το id (δεκαεξαδικός κωδικός κλειδί) και το name (όνομα). Συγκεκριμένα τo name μπορεί να δοθεί σαν παράμετρος στην εντολή run. Εάν δε δοθεί, τότε το docker επιλέγει ένα τυχαίο όνομα.
 +
 +Η εντολή συντάσσεται ως εξής:
 +
 +    ~$ docker run <flags> <options>
 +
 +Για παράδειγμα:
 +
 +    ~$ docker -it --name ubuntu_env ubuntu
 +
 +Όπου:
 +  *     **-i:** Μεταφράζεται ως interactive και σημαίνει ότι το container ανοίγει μία γραμμή εντολών στο τερματικό για την αλληλεπίδραση του χρήστη με το container. Στο παραπάνω παράδειγμα, δημιουργεί ένα ξεχωριστό τερματικό με δικαιώματα super user για το εικονικό περιβάλλον ubuntu.
 +  *     **-t:** Δίνει ένα μοναδικό κωδικό χρήστη για τον εικονικό περιβάλλον.
 +  * **--name:** Λαμβάνει σαν όνομα του container την αμέσως επόμενη λέξη.
 +
 +**Σημείωση:** Συνιστάται να δίνεται κάποιο όνομα κατά τη δημιουργία container, διότι είναι πιο εύκολο να χρησιμοποιείται αυτό το όνομα για την αναφορά στο συγκεκριμένο container, από το δεκαεξαδικό id ή το όνομα που θα δώσει το docker.
 +
 +====Ps====
 +
 +Η εντολή αυτή εμφανίζει τα container και τις πληροφορίες αυτών.
 +
 +    ~$ docker ps <flags>
 +
 +Εδώ τίθεται σκόπιμο να σημειωθεί ότι εάν εκτελεστεί ως:
 +
 +    ~$ docker ps
 +
 +Θα εμφανιστούν μόνο τα container που είναι ενεργά (active) εκείνη τη δεδομένη στιγμή. Για την εμφάνιση ώλων των container χρειάζεται να εκτελεστεί η εντολή:
 +
 +    ~$ docker ps -a
 +
 +====Stop====
 +
 +Με την εντολή αυτή απενεργοποιείται ένα container. Για την αναφορά στο container θα πρέπει να χρησιμοποιηθεί είτε το id, είτε το name του container. Για αυτο το λόγο είναι καλό να δίνεται πάντα κάποιο όνομα όταν δημιουργούνται container με την εντολή run.
 +
 +Η εντολή αυτή συντάσσεται ως:
 +
 +    ~$ docker stop <container>
 +
 +Για παράδειγμα:
 +
 +    ~$ docker stop ubuntu_env
 +
 +====Start====
 +
 +Η εντολή αυτή ενεργοποιεί ένα σταματημένο container. Αυτό που πρέπει να σημειωθεί είναι ότι η εντολή αυτή δεν δημιουργεί κάποιο container, αλλά ενεργοποιεί ένα υπάρχον. Για αυτό το λόγο δεν πρέπει να δημιουργηθεί σύγχηση με την εντολή **run** που περιγράφηκε παραπάνω (η εντολή run κάθε φορά που εκτελείται δημιουργεί νέο container).
 +
 +Η εντολή συντάσσεται ως:
 +
 +    ~$ docker start <flags> <container>
 +
 +Για παράδειγμα:
 +
 +    ~$ docker start -i ubuntu_env
 +
 +====Rm====
 +
 +Η εντολή αυτή χρησιμοποιείται για τη διαγραφή ενός ή παραπάνω container. Συντάσσεται ως:
 +
 +    ~$ docker rm <container>
 +
 +Για παράδειγμα:
 +
 +    ~$ 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
 +
 +Στη συνέχεια μπορούν να γίνουν πειράματα εκτελώντας διάφορες εντολές τερματικού, όπως **ls, cd, mkdir** κλπ.
 +
 +====Εγκατάσταση της Python====
 +
 +Για την εγκατάσταση της python αρκεί να εκτελεστεί η εντολή:
 +
 +   ~$ docker pull python
 +
 +Η εντολή αυτή θα εγκαταστήσει την τελευταία έκδοση της python. Εάν κάποιος θέλει κάποια συγκεκριμένη έκδοση, όπως πχ τη 2.7.17 buster χρειάζεται να εκτελέσει την εντολή:
 +
 +   ~$ docker pull python:2.7.17-buster
 +
 +Στη συνέχεια για τη δημιουργία του container αντίστοιχα εκτελείται η εντολή:
 +
 +   ~$ docker run --name python_container python
docker.1579787690.txt.gz · Τελευταία τροποποίηση: 2020/11/21 09:52 (εξωτερική τροποποίηση)