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

7 Likes