Docker (μέρος 5) | Ολοκληρωμένη διαχείριση του Docker με γραφικό περιβάλλον από το Portainer
Όλα όσα έχουμε δει μέχρι σήμερα για τη βασική διαχείριση του Docker είναι μέσα
από το τερματικό. Αν και αυτός ο τρόπος είναι ο ενδεδειγμένος, καθώς οι
περισσότεροι admin χρησιμοποιούν τη σύνδεση μέσω SSH για να μπουν στο server
τους, κανείς δε μας απαγορεύει να κάνουμε όλη τη δουλειά μας μέσα από ένα
γραφικό περιβάλλον και το καλύτερο μέχρι στιγμής μας το προσφέρει το
Portainer.
Τι είναι το Portainer
Το Portainer είναι μία υπηρεσία που τρέχει μέσα σε container σαν όλες τις
άλλες, ο σκοπός της όμως είναι η διαχείριση ολόκληρης της εγκατάστασης του
Docker. Μας προσφέρει λοιπόν ένα ωραιότατο περιβάλλον, μέσα από το οποίο
μπορούμε να δημιουργήσουμε, να επεξεργαστούμε και να διαγράψουμε container,
image, volume, network και γενικότερα ότι χρειάζεται το Docker.
Τρέχει σε έναν web server στον οποίο έχουμε πρόσβαση μέσα από τον browser
οποιασδήποτε συσκευής βρίσκεται στο ίδιο δίκτυο και μπορεί να διαχειριστεί
έναν Docker server που τρέχει τοπικά ή ένα Docker Swarm που λειτουργεί σε
πολλές διαφορετικές συσκευές ταυτόχρονα.
Εγκατάσταση του Portainer στο Docker
Έχουμε δει πώς γίνεται η εγκατάσταση του Portainer
στο άρθρο με τις πρώτες υπηρεσίες που αξίζει να προσθέσεις
στο Docker, αλλά θα το ξαναδούμε καθώς είναι πανεύκολο. Ξεκινάμε δημιουργώντας
ένα volume με την ονομασία "portainer", το οποίο θα φιλοξενήσει τα αρχεία
ρυθμίσεών του. Αυτό γίνεται με την εντολή:
docker volume create portainer
Στη συνέχεια δίνουμε την ακόλουθη εντολή για να εγκαταστήσουμε το Portainer:
docker run -d \-p 8000:8000 \-p 9000:9000 \--name=portainer \--restart=unless-stopped \-v /var/run/docker.sock:/var/run/docker.sock \-v portainer:/data \portainer/portainer
Ας θυμηθούμε λιγάκι τι σημαίνουν όλα αυτά:
- (-p) λέμε στο Portainer να χρησιμοποιήσει τις πόρτες 8000 και 9000 στο δίκτυο,
- (--name) το ονομάζουμε "portainer" για να το ξεχωρίζουμε,
- (--restart) του λέμε επίσης να επανεκκινεί αυτόματα σε όλες τις περιπτώσεις εκτός και αν το έχουμε σταματήσει εμείς,
- (-v) το συνδέουμε στο κεντρικό volume του Docker (docker.sock) και σε αυτό που δημιουργήσαμε εμείς (portainer),
- (portainer/portainer) καλούμε το image του portainer από το DockerHub, αν δεν το έχουμε ήδη κατεβάσει στη συσκευή μας.
Περιμένουμε να ξεκινήσει η υπηρεσία, ανοίγουμε τον browser σε
οποιαδήποτε συσκευή στο δίκτυό μας και πληκτρολογούμε την IP του server μαζί
με την πόρτα του Portainer. Για παράδειγμα:
http://192.168.1.25:9000
Εκεί θα βρούμε την οθόνη δημιουργίας νέου χρήστη. Δημιουργούμε ένα username
και ένα password και ξεκινάμε!
Διαφήμιση
Διαχείριση container στο Portainer
Το πρώτο πράγμα που θα δούμε στο Portainer είναι οι server στους οποίους
έχουμε συνδεθεί (Endpoints). Στις περισσότερες περιπτώσεις θα είναι μόνο ο
"local" στον οποίο μπορούμε να δούμε με μια ματιά πόσα container τρέχουν, πόσα
volume έχουν δημιουργηθεί και άλλες βασικές πληροφορίες.
Κάνοντας κλικ επάνω του θα δούμε τα πέντε στοιχεία που περιλαμβάνει ένας
Docker server (stacks, containers, images, volumes, networks). Επιλέγουμε το
"Containers" και θα εμφανιστούν όλα τα container που έχουμε δημιουργήσει με
τις αντίστοιχες πληροφορίες τους.
Εδώ μπορούμε με τα επάνω πλήκτρα να εκκινήσουμε, σταματήσουμε, διακόψουμε,
διαγράψουμε τη λειτουργία ενός container, ενώ με αυτά που βρίσκονται στο πεδίο
"Quick actions" μπορούμε να δούμε το log αρχείο (Logs), να ανοίξουμε ένα
τερματικό (Console), ή να δούμε τα στατιστικά στοιχεία (Stats) του καθενός.
Εδώ βλέπουμε επίσης πότε δημιουργήθηκε / αναβαθμίστηκε το κάθε container, ποιο
είναι το image που χρησιμοποιεί το καθένα, τη διεύθυνση IP του και τις πόρτες
που δεσμεύει στο δίκτυο. Αυτές οι πληροφορίες είναι πολύ γνώριμες, καθώς όπως
είδαμε στο άρθρο για τις βασικές εντολές του Docker, είναι αυτές που παίρνουμε
στο τερματικό δίνοντας την εντολή:
docker ps -a
Δημιουργία ενός νέου container στο Portainer
Στο άρθρο σχετικά με το πώς δημιουργούμε ένα container, είδαμε την εντολή
"docker run" πάνω σε διάφορα παραδείγματα. Ας δούμε λοιπόν πώς μπορούμε να
κάνουμε το ίδιο πράγμα μέσα από το γραφικό περιβάλλον του Portainer. Θα
εγκαταστήσουμε για παράδειγμα την υπηρεσία Heimdall, οι εντολές της οποίας είναι οι εξής:
docker volume create heimdall
docker run -d \--name=heimdall \-e PUID=1000 \-e PGID=1000 \-e TZ=europe/athens \-p 8001:80 \-p 9001:443 \-v heimdall:/config \--restart unless-stopped \linuxserver/heimdall
Πρώτα θα πρέπει να δημιουργήσουμε το volume για το container μας, οπότε από το
πλαϊνό μενού επιλέγουμε "Volumes", στη συνέχεια "Add volume" και προσθέτουμε
τις πληροφορίες του.
Στη συνέχεια θα πάμε στο "Containers" και θα επιλέξουμε "Add container". Στην
περίπτωση του Heimdall θα προσθέσουμε τα εξής:
- Name: Heimdall
- Registry: DockerHub
- Image: linuxserver/heimdall
Στο "Advanced container settings" θα βάλουμε όλες τις υπόλοιπες πληροφορίες
που έχουμε για το Heimdall, όπως για παράδειγμα το Volume που θα χρησιμοποιεί,
τις συνθήκες στις οποίες λειτουργεί (Env), το "Restart policy" και τα λοιπά.
Σημαντικό είναι επίσης να πούμε ότι στο πεδίο "Runtime & Resources"
μπορούμε επίσης να πορίσουμε συγκεκριμένη πόση RAM και πόση επεξεργαστική ισχύ
(CPU) μπορεί να καταναλώσει το συγκεκριμένο container. Αφού τα συμπληρώσουμε
λοιπόν όλα αυτά, επιλέγουμε "Deploy the container" και περιμένουμε να
ξεκινήσει.
Διαφήμιση
Διαχείριση endpoint, image, network και έτοιμα template
Με τον ίδιο τρόπο από την πλαϊνή μπάρα μπορούμε να επιλέξουμε και να
προσθέσουμε / αφαιρέσουμε ένα νέο image, ένα network ή ένα endpoint αν κάποια
στιγμή εξελίξουμε το server μας σε Docker Swarm.
Εκεί θα βρούμε επίσης και τα "Template" τα οποία είναι εξαιρετικά χρήσιμα,
καθώς μας προσφέρουν έτοιμες συνταγές για πολύ κοινές υπηρεσίες. Από εκεί
λοιπόν μπορούμε να στήσουμε εύκολα και γρήγορα ένα Wordpress ή ένα Drupal, να εγκαταστήσουμε μία MariaDB ή να σηκώσουμε ένα NGINX webserver.
Εν κατακλείδι
Εν κατακλείδι το Portainer είναι ένα εξαιρετικό εργαλείο διαχείρισης του
Docker, με το οποίο απαλλάσσεσαι μια για πάντα από το τερματικό, αν δεν
αισθάνεσαι καλά με τις εντολές του. Η αλήθεια βέβαια είναι ότι μέσω τερματικού
η διαχείριση είναι πιο εύκολη και γρήγορη, οπότε μπορείς να μάθεις το
Portainer σε έναν "άσχετο" συνάδελφο, ο οποίος θα μπορεί να επισκευάσει την
εγκατάσταση ακόμη και όταν λείπεις από το γραφείο.
Πως ανακτούμε username ή password που έχουμε ξεχάσει στο login του localhost;
ΑπάντησηΔιαγραφήΕυχαριστώ.
Αν εννοείς στο login του Portainer, δεν ξέρω αν έχει κάποια διαδικασία ανάκτησης κωδικού.
Διαγραφή