Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;
Ένα μεγάλο πρόβλημα που έχουν όσοι χρησιμοποιούν εικονικές μηχανές (VM), είναι ότι σε κάθε μία από αυτές πρέπει να φορτώνουν ένα ολόκληρο λειτουργικό σύστημα για να τρέξουν μία και μόνο εφαρμογή ή υπηρεσία. Το πρόβλημα δηλαδή με υπηρεσίες όπως το Virtualbox είναι ότι αν έχεις Windows PC και θέλεις να δοκιμάσεις μία Linux εφαρμογή, θα πρέπει να εγκαταστήσεις ολόκληρο το Linux και να του δώσεις μάλιστα συγκεκριμένους πόρους από τον επεξεργαστή, τη RAM και το δίσκο του υπολογιστή σου. Όλα αυτά όμως αποτελούν πλέον παρελθόν, καθώς με το Docker η όλη διαδικασία γίνεται ευκολότερα, ταχύτερα και κυρίως πιο οικονομικά από άποψη πόρων.
Τι είναι το Docker, πώς λειτουργεί και τι μας προσφέρει;
To Docker είναι μια πλατφόρμα λογισμικού ανοιχτού κώδικα με την οποία μπορούμε να κάνουμε virtualization σε επίπεδο λειτουργικού συστήματος. Σου δίνει δηλαδή τη δυνατότητα να εγκαταστήσεις μόνο την εφαρμογή / υπηρεσία που θέλεις (χωρίς έξτρα λειτουργικό σύστημα), σε ένα απομονωμένο περιβάλλον από το κανονικό σου σύστημα, κάνοντας τεράστια οικονομία στη CPU, τη GPU και τη RAM του υπολογιστή σου. Πρακτικά αυτό σημαίνει ότι δε χρειάζεται να έχεις έναν δυνατό (και ακριβό) υπολογιστή στην κατοχή σου, καθώς μπορείς να χρησιμοποιήσεις ακόμη και κάτι σαν το Raspberry Pi, ενώ μπορείς να τρέξεις πολύ περισσότερες εφαρμογές λόγω της οικονομίας πόρων.
Virtualbox σε Ubuntu με guest OS το Windows 10 |
Σε απλά ελληνικά το Docker είναι μία υπηρεσία με την οποία μπορείς να δοκιμάσεις ή να τρέχεις μόνιμα, εφαρμογές που δε θέλεις ή δε γίνεται να εγκατασταθούν κανονικά στον υπολογιστή σου. Μπορείς δηλαδή σε ένα Windows PC να τρέξεις μία Linux υπηρεσία (και το αντίστροφο) ή μπορείς να δοκιμάσεις μία άγνωστη εφαρμογή, χωρίς να κινδυνεύσει το υπόλοιπο λειτουργικό σου σύστημα, αν είναι μολυσμένη με κάποιον ιό. Οι εφαρμογές αυτές τρέχουν σε μία... "φούσκα" (container), τα περιεχόμενα της οποίας είναι απομονωμένα από το υπόλοιπο περιβάλλον του υπολογιστή και μας δίνεται η δυνατότητα να τη... "σκάσουμε" όποτε θέλουμε, για να διαγράψουμε τα πάντα από το σύστημά μας!
Προφανώς και το Docker δεν απευθύνεται στο μέσο χρήστη desktop υπολογιστή, αν όμως θέλεις να έχεις το δικό σου οικιακό server για να "σηκώσεις" ένα Nextcloud ή ένα Home Assistant ή αν έχεις μία εταιρία και θέλεις ο server της να λειτουργεί σε καλύτερες συνθήκες, τότε το Docker είναι η σωστή επιλογή για να ξεκινήσεις. Τα κέρδη που έχεις με το Docker σε σχέση με ένα "συμβατικό" server είναι ότι:
- το βασικό σου λειτουργικό σύστημα είναι ασφαλές,
- αν συμβεί κάτι σε κάποιο container δεν επηρεάζονται όλα υπόλοιπα ούτε το λειτουργικό σύστημα,
- η δημιουργία και η διαγραφή του κάθε container είναι πανεύκολη,
- μπορείς να έχεις πολλούς web server ακόμη και σε αδύναμες συσκευές όπως το Raspberry Pi,
- το σύστημά σου είναι τακτοποιημένο και καθαρό.
Διαφήμιση
Η εγκατάσταση του Docker στο Linux (Debian)
Για να τρέξουμε ένα Docker container στον υπολογιστή μας θα χρειαστεί να δώσουμε μία εντολή στο τερματικό για να το εγκαταστήσουμε και άλλη μία για κάθε container που θέλουμε να τρέξουμε. Τόσο απλό είναι! Κατεβάζουμε λοιπόν το Docker στον υπολογιστή μας με την εντολή:
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
Μόλις τελειώσει τη διαδικασία, προσθέτουμε αν θέλουμε στο docker group το χρήστη με τον οποίο κάνουμε login στον υπολογιστή μας, για να μη δίνουμε "sudo" σε κάθε εντολή. Αν για παράδειγμα ο χρήστης μας λέγεται "chris" θα δώσουμε την εντολή:
sudo usermod -aG docker chris
Για να αποθηκευτούν οι αλλαγές κάνουμε logout και ξανά login ή ακόμη καλύτερα επανεκκίνηση στον υπολογιστή μας. Για να δούμε τώρα τις πληροφορίες της εγκατάστασης και να ελέγξουμε αν όλα είναι εντάξει δίνουμε την εντολή:
docker version
Επίσης για να ελέγξουμε αν όλα είναι OK, μπορούμε να τρέξουμε και ένα δοκιμαστικό container με την εντολή:
docker run hello-world
Αν μας απαντήσει "Hello from Docker!" μαζί με άλλες πληροφορίες, όλα είναι έτοιμα και το σύστημά μας περιμένει να τρέξει τα πρώτα του container!
Εγκατάσταση ενός container (Heimdall)
Ας δούμε όμως στην πράξη τι μπορεί να μας προσφέρει το Docker και τα container του. Θα εγκαταστήσουμε λοιπόν το Heimdall, μία πολύ απλή υπηρεσία που μας προσφέρει μία "Αρχική σελίδα" για τον browser μας. Σε αυτή τη σελίδα μπορούμε να προσθέσουμε τις αγαπημένες μας ιστοσελίδες ή άλλες υπηρεσίες που τρέχουν σε container, για να τις βρίσκουμε εύκολα και γρήγορα.
Η κεντρική σελίδα του Heimdall |
Θα δημιουργήσουμε πρώτα ένα χώρο αποθήκευσης για το Heimdall με την εντολή:
docker volume create heimdall
Στη συνέχεια θα δημιουργήσουμε το container του με την εντολή:
docker run -d --name=heimdall -e PUID=1000 -e PGID=1000 -e TZ=europe/athens -p 80:80 -p 443:443 -v heimdall:/config --restart unless-stopped linuxserver/heimdall
Τώρα αν ανοίξουμε τον browser και πληκτρολογήσουμε τη λέξη "localhost" ή τη διεύθυνση IP του υπολογιστή μας (π.χ. 192.168.1.20), θα δούμε τη σελίδα του Heimdall!
Σημείωση:
Η εντολή για την εκκίνηση ενός container είναι λίγο τρομακτική εκ πρώτης όψεως, αλλά όταν την εξηγήσουμε σε επόμενο άρθρο, θα δούμε ότι δεν είναι τίποτα το ιδιαίτερο.
Απεγκατάσταση του Docker (Debian)
Το δοκιμάσαμε, δε μας άρεσε ή δεν το βρήκαμε χρήσιμο; Για να απεγκαταστήσουμε το Docker αρκεί να δώσουμε τις ακόλουθες εντολές:
sudo apt purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
Εν κατακλείδι
Αυτή ήταν μία απλή εισαγωγή στον κόσμο του Docker. Σε επόμενα άρθρα θα ρίξουμε μια ματιά στις εντολές εκκίνησης container, στο γραφικό περιβάλλον του Portainer, στο Docker Compose, ενώ θα δούμε και συγκεκριμένες εντολές διαφόρων χρήσιμων υπηρεσιών για να δώσουμε μερικά παραδείγματα.
Αυτό το σχόλιο αφαιρέθηκε από έναν διαχειριστή ιστολογίου.
ΑπάντησηΔιαγραφήΠολύ ωραίο άρθρο. Θα ηθελα αν γίνεται να δουμε και ενα οδηγό για το πως μπορούμε να κάνουμε ενα container να έχει σύνδεση στο δίκτυο μέσω bridge network (αν το λέω σωστα) έτσι ώστε να τρέχει η υπηρεσία ενος σέρβερ σε αλλη IP απο αυτή του συστήματος. Και μια ερωτηση, γίνεται να κάνουμε το ίδιο image εγκατάσταση πανω απο μια φορά όπως το WordPress και μέσω του network bridge να τρέχουν σε διαφορετικές ip αλλά στην ίδια πόρτα;
ΑπάντησηΔιαγραφήΣτα επόμενα άρθρα πιστεύω ότι θα καλυφθούν οι απορίες σου.
ΔιαγραφήΣυγκεκριμένα για τη δημιουργία container από το ίδιο image, εννοείται ότι γίνεται, απλά θα πρέπει να δίνεις διαφορετικά ονόματα στα container.
Με την εντολή "docker commit" μπορείς επίσης να φτιάξεις ένα νέο image με τις ρυθμίσεις σου, για να μην το στήνεις συνέχεια από την αρχή.
Ευχαριστω πολυ για την αρθρογραφια σου σχετικα με το docker.Ευχομαι και ελπιζω να προσθεσεις και αλλα στο μελλον.Να εισαι καλα.
ΑπάντησηΔιαγραφή