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 σε έναν "άσχετο" συνάδελφο, ο οποίος θα μπορεί να επισκευάσει την εγκατάσταση ακόμη και όταν λείπεις από το γραφείο.

Σχόλια

  1. Πως ανακτούμε username ή password που έχουμε ξεχάσει στο login του localhost;
    Ευχαριστώ.

    ΑπάντησηΔιαγραφή
    Απαντήσεις
    1. Αν εννοείς στο login του Portainer, δεν ξέρω αν έχει κάποια διαδικασία ανάκτησης κωδικού.

      Διαγραφή

Δημοσίευση σχολίου

Πες την άποψή σου ή κάνε την ερώτησή σου ελεύθερα, ακολουθώντας όμως τους στοιχειώδεις κανόνες ευγένειας.

Δείτε επίσης...

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter