Στο πρώτο μέρος, παρουσίασα τις θεμελιώδεις αρχές πίσω από τα δοχεία Docker και πώς φτάσαμε στην ευρεία χρήση του. Σε αυτό το δεύτερο μέρος, θα προχωρήσουμε στην εγκατάσταση του Docker και της διαχείρισης του ως υπηρεσίας στο σύστημά μας.
Θα ετοιμάσουμε το σύστημά μας έτσι ώστε στο επόμενο μέρος να δημιουργήσουμε ένα προσωπικό σημειωματάριο χρησιμοποιώντας το σύστημα διαχείρισης περιεχομένου WordPress (CMS) ή το Dokuwiki.
Όλη η σειρά οδηγών «Πως χρησιμοποιούμε το Docker βρίσκεται στον σύνδεσμο»:
Server OS vs Docker
Όπως συζητήσαμε στο πρώτο μέρος, για να υλοποιήσουμε ένα απο το παραπάνω έργο (π.χ. WordPress), θα χρειαζόταν είτε να εγκαταστήσουμε και να ρυθμίσουμε με μη αυτόματο τρόπο μια φυσική μηχανή με τα τμήματα Apache, MySQL, PHP που χρειάζονται για να τρέξουν το WordPress CMS ή το Docuwiki ή να εγκαταστήσετε μια διανομή διακομιστή Linux σε μια εικονική μηχανή και στη συνέχεια να εγκαταστήσετε και να ρυθμίσετε τις παραμέτρους Apache, MySQL, PHP.
Με τα Docker Container, δεν χρειάζεται να κάνουμε όλη αυτή την «χειρωνακτική εργασία». Πρέπει απλώς να κατεβάσουμε το Docker image και να δημιουργήσουμε ένα Container που έχει όλα τα πράγματα που χρειαζόμαστε, προ-ρυθμισμένα για εμάς και έτοιμα να τρέξουν.
Ας επικεντρωθούμε όμως στην προετοιμασία του συστήματός μας .
Εγκατάσταση του Docker
Προϋποθέσεις
Το Docker απαιτεί να έχετε 64 bit Linux διανομή. Επιπλέον, ο πυρήνας πρέπει να είναι στην έκδοση 3.10 τουλάχιστον, επειδή οι πυρήνες του Linux που είναι παλαιότεροι από 3.10 δεν έχουν κάποια από τα χαρακτηριστικά που απαιτούνται για την εκτέλεση των Docker Container.
Θα περιγράψω τη διαδικασία εγκατάστασης για το λειτουργικό σύστημα Ubuntu Linux 16.04 64bit, αλλά το ίδιο ισχύει για οποιαδήποτε διανομή, με μόνη διαφορά, τις εντολές εγκατάστασης του πακέτου. Επί του παρόντος, το Docker υποστηρίζεται στις εκδόσεις Ubuntu 14.04 / 16.04 /16.10. Για άλλες διανομές, μπορείτε να ελέγξετε την επίσημη τεκμηρίωση:
Ανοίξετε λοιπόν ένα τερματικό για να κάνουμε εγκατάσταση κάποια προαπαιτούμενα:
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Έπειτα προσθέστε με την παρακάτω εντολή, την ψηφιακή υπογραφή για το Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Τώρα πάμε να προσθέσουμε το αποθετήριο του Docker:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Τέλος, πάμε να το εγκαταστήσουμε:
sudo apt update && sudo apt install docker-ce docker-ce-cli docker-compose containerd.io
Αυτά τα πακέτα αποτελούν την εργαλειοθήκη του Docker:
containerd.io
– Ο daemon του docker για διασύνδεση του με το API του λειτουργικού συστήματος (σε αυτήν τα περίπτωση, LXC – Linux Containers). Αυτή η υπηρεσία ουσιαστικά αποσυνδέει το Docker από το λειτουργικό σύστημα αλλά και παρέχει επίσης υπηρεσίες κοντέινερς που δεν βασίζονται στο Docker.docker-ce
– το τμήμα που κάνει όλη η διαχείριση των containers. To-ce
είναι απο «δωρεάν community edition».docker-ce-cli
– εργαλεία τερματικού για τον έλεγχο του dockerdocker-compose
– Χρησιμεύει για την διαχείριση έτοιμων «συνταγών» εκκίνησης πολλαπλών containers (θα το δούμε στο μέλλον)
Τέλος, για να μην βάζουμε sudo
πριν απο κάθε χρήση του docker, καλό είναι να βάλουμε τον χρήστη και στην ομάδα που έχει δικαιώματα χρήσης του docker:
sudo usermod -aG docker
$USER
Τελειώσαμε με την εγκατάσταση του Docker Engine. Σε περίπτωση που έχετε κάποιες διαφορετικές ανάγκες, δείτε την επίσημη τεκμηρίωση στο https://docs.docker.com/engine/install/ubuntu/
Διαχείριση υπηρεσίας Docker στο Ubuntu 16.04
Τώρα που έχουμε προετοιμάσει το σύστημα μας ας δούμε και την διαχείριση της υπηρεσίας Docker που θα τρέχει στο παρασκήνιο.
Πρώτα απ ‘όλα, θα πρέπει να μάθουμε πώς να ξεκινήσουμε ή να σταματήσουμε την υπηρεσία Docker και επίσης πώς να ελέγξουμε αν τρέχει με το εργαλείο systemctl.
Για να ελέγξετε εάν λειτουργεί το Docker και να ελέγξετε επίσης κάποιες χρήσιμες πληροφορίες σχετικά με τη μνήμη, την CPU, το αναγνωριστικό διαδικασίας και ορισμένες καταχωρήσεις καταγραφής, μπορούμε να εκτελέσουμε:
sudo systemctl status docker
Για να ξεκινήσετε την υπηρεσία Docker, δίνουμε την ακόλουθη εντολή:
sudo systemctl start docker

Για να διακόψετε την υπηρεσία Docker, δίνουμε την ακόλουθη εντολή:
sudo systemctl stop docker

Αν για οποιονδήποτε λόγο δεν θέλουμε να λειτουργεί η υπηρεσία Docker πάντα στο παρασκήνιο, μπορούμε να απενεργοποιήσουμε την εκκίνηση της κατά την εκκίνηση του συστήματος δίνοντας την ακόλουθη εντολή:
sudo systemctl disable docker
Ενώ αν θέλουμε να επαναφέρουμε την παραπάνω ενέργεια, μπορούμε να επιτρέψουμε την εκκίνηση της υπηρεσίας Docker κατά την εκκίνηση του συστήματος με την ακόλουθη εντολή:
sudo systemctl enable docker
Επίλογος
Με το δεύτερο μέρος, ολοκληρώσαμε την προετοιμασία του λειτουργικού συστήματος (Ubuntu 16.04 στην περίπτωσή μας) για να μπορέσουμε να εκτελούμε την πιο πρόσφατη έκδοση του Docker Engine.
Επίσης, μάθαμε πώς να ξεκινήσουμε, να σταματήσουμε, να ελέγξουμε την κατάσταση της υπηρεσίας Docker και να ενεργοποιήσουμε ή να απενεργοποιήσουμε την εκκίνηση της κατά την εκκίνηση του συστήματος.
Στο επόμενο (τρίτο) μέρος , θα αρχίσουμε να χρησιμοποιούμε τα στιγμιότυπα του Docker και θα δούμε πώς μπορούμε να δημιουργήσουμε Containers με έναν πρακτικό τρόπο οπότε μείνετε συντονισμένοι. Όσοι ενδιαφέρεστε μπορείτε :
Εγγραφείτε στο Newsletter του Cerebrux.net για να λαμβάνετε ειδοποίηση για νέα άρθρα
Δεν έχω καταλάβει κάτι, ίσως το ξεδιαλύνω με το βήμα 3 του tutorial!
Πες ότι έχω ubuntu server 14.04, που έχει επάνω php, apache, mysql.
Και θέλω να περάσω και μια εφαρμογή, που χρησιμοποιεί νεότερες εκδόσεις των ανωτέρω υπηρεσιών (πχ απαιτεί 16.04). Μπορώ να τρέξω το container που θα τα περιλαμβάνει όλα αυτά έτοιμα πακέτο, χωρίς να επηρεαστεί η εγκατάσταση των υπολοίπων που τρέχουν κανονικά εγκατεστημένα;
Και πώς ξεδιαλύνουμε πχ, σε ποιο port θα ακούει ο apache της καθεμιάς;
Ναι ακριβώς αυτό ! Δεν μας νοιάζει τι τρέχεις (14,04 ή 17.04), όπως θα δεις και στο επόμενο, όπου αναλύουμε τι είναι το Container, θα καταλάβεις ότι μπορείς να έχεις τα πάντα σε δικό του container και απλά να επικοινωνούν μεταξύ τους σαν να έχει διαφορετικούς server για κάθε υπηρεσία με το καθένα να είναι σε δικιά του IP και port. Φυσικά και σε όποια έκδοση των εκάστοτε υπηρεσιών θες χωρίς να πειράζει το υποκείμενο λειτουργικό και τα πακέτα του.
Ευχαριστούμε για το άρθρο.Το έκανα εγκατασταση σε περιβάλλον Ubuntu 20.04.2 LTS.
Νασε καλά, καλή συνέχεια στην ανάγνωση !