Εγκαταστήστε το Docker and Learn Basic Container Manipulation σε CentOS και RHEL 8/7 - Μέρος 1


Σε αυτήν τη σειρά 4 άρθρων, θα συζητήσουμε το Docker, το οποίο είναι ένα ελαφρύ εργαλείο εικονικοποίησης ανοιχτού κώδικα που εκτελείται στην κορυφή του επιπέδου λειτουργικού συστήματος, επιτρέποντας στους χρήστες να δημιουργούν, να εκτελούν και να αναπτύσσουν εφαρμογές, ενσωματωμένες σε μικρές δοχεία.

Αυτός ο τύπος κοντέινερ Linux είναι αποδεδειγμένα γρήγορος, φορητός και ασφαλής. Οι διεργασίες που εκτελούνται σε ένα κοντέινερ Docker είναι πάντα απομονωμένες από τον κύριο κεντρικό υπολογιστή, αποτρέποντας την εξωτερική παραβίαση.

Αυτό το σεμινάριο παρέχει ένα σημείο εκκίνησης σχετικά με τον τρόπο εγκατάστασης του Docker, δημιουργίας και εκτέλεσης κοντέινερ Docker στο CentOS/RHEL 8/7, αλλά μόλις και μετά βίας χαράζει την επιφάνεια του Docker.

Βήμα 1: Εγκαταστήστε και ρυθμίστε το Docker

1. Οι προηγούμενες εκδόσεις του Docker ονομάζονταν docker ή docker-engine, εάν τα έχετε εγκαταστήσει, πρέπει να απεγκαταστήστε τα πριν εγκαταστήσετε μια νεότερη έκδοση docker-ce.

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. Για να εγκαταστήσετε την πιο πρόσφατη έκδοση του the Docker Engine, πρέπει να ρυθμίσετε το αποθετήριο Docker και να εγκαταστήσετε το πακέτο yum-utils για να ενεργοποιήσετε το Docker σταθερό αποθετήριο στο σύστημα.

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. Τώρα εγκαταστήστε τη νεότερη έκδοση docker-ce από το αποθετήριο Docker και το container με μη αυτόματο τρόπο, επειδή λόγω ορισμένων προβλημάτων, η Red Hat απέκλεισε την εγκατάσταση του containerd.io > 1.2.0-3.el7, το οποίο είναι μια εξάρτηση από το docker-ce.

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. Αφού εγκατασταθεί το πακέτο Docker, ξεκινήστε τον δαίμονα, ελέγξτε την κατάστασή του και ενεργοποιήστε το σε όλο το σύστημα χρησιμοποιώντας τις παρακάτω εντολές:

systemctl start docker 
systemctl status docker
systemctl enable docker

5. Τέλος, εκτελέστε μια δοκιμαστική εικόνα κοντέινερ για να επαληθεύσετε εάν το Docker λειτουργεί σωστά, εκδίδοντας την ακόλουθη εντολή:

docker run hello-world

Εάν μπορείτε να δείτε το παρακάτω μήνυμα, τότε όλα είναι στη σωστή θέση.

Δείγμα εξόδου
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

6. Τώρα, μπορείτε να εκτελέσετε μερικές βασικές εντολές Docker για να λάβετε κάποιες πληροφορίες σχετικά με το Docker:

Για πληροφορίες σε όλο το σύστημα σχετικά με το Docker
docker info

Για την έκδοση Docker
docker version

7. Για να λάβετε μια λίστα με όλες τις διαθέσιμες εντολές Docker, πληκτρολογήστε docker στην κονσόλα σας.

docker

Βήμα 2: Λήψη εικόνας Docker

8. Για να ξεκινήσετε και να εκτελέσετε ένα κοντέινερ Docker, πρέπει πρώτα να πραγματοποιήσετε λήψη μιας εικόνας από το Docker Hub στον κεντρικό υπολογιστή σας. Το Docker Hub προσφέρει πολλές δωρεάν εικόνες από τα αποθετήρια του.

Για να αναζητήσετε μια εικόνα Docker, το Ubuntu, για παράδειγμα, εκδώστε την ακόλουθη εντολή:

docker search ubuntu

9. Αφού αποφασίσετε ποια εικόνα θέλετε να εκτελέσετε με βάση τις ανάγκες σας, πραγματοποιήστε λήψη της τοπικά εκτελώντας την παρακάτω εντολή (σε αυτήν την περίπτωση γίνεται λήψη και χρήση μιας εικόνας Ubuntu ):

docker pull ubuntu

10. Για να παραθέσετε όλες τις διαθέσιμες εικόνες Docker στον κεντρικό υπολογιστή σας, εκθέστε την ακόλουθη εντολή:

docker images

11. Εάν δεν χρειάζεστε πλέον μια εικόνα Docker και θέλετε να την καταργήσετε από τον κεντρικό υπολογιστή, η ακόλουθη εντολή:

docker rmi ubuntu

Βήμα 3: Εκτελέστε ένα Docker Container

Όταν εκτελείτε μια εντολή σε μια εικόνα, βασικά αποκτάτε ένα κοντέινερ. Αφού τελειώσει η εντολή που εκτελείται στο κοντέινερ, το κοντέινερ σταματάει (λαμβάνετε ένα κοντέινερ που δεν εκτελείται ή έχει βγει). Εάν εκτελέσετε άλλη εντολή στην ίδια εικόνα ξανά, δημιουργείται ένα νέο κοντέινερ και ούτω καθεξής.

Όλα τα κοντέινερ που δημιουργήθηκαν θα παραμείνουν στο σύστημα αρχείων του κεντρικού υπολογιστή μέχρι να επιλέξετε να τα διαγράψετε χρησιμοποιώντας την εντολή docker rm.

12. Για να δημιουργήσετε και να εκτελέσετε ένα κοντέινερ, πρέπει να εκτελέσετε την εντολή σε μια εικόνα που έχετε λάβει, σε αυτήν την περίπτωση, Ubuntu, επομένως μια βασική εντολή θα ήταν να εμφανίσετε το αρχείο έκδοσης διανομής μέσα στο κοντέινερ χρησιμοποιώντας την εντολή cat, όπως στο ακόλουθο παράδειγμα:

docker run ubuntu cat /etc/issue

Η παραπάνω εντολή χωρίζεται ως εξής:

docker run [local image] [command to run into container]

13. Για να εκτελέσετε ξανά ένα από τα κοντέινερ με την εντολή που εκτελέστηκε για τη δημιουργία του, πρώτα, πρέπει να λάβετε το ID του κοντέινερ (ή το όνομα που δημιουργείται αυτόματα από το Docker) εκδίδοντας την παρακάτω εντολή, η οποία εμφανίζει μια λίστα με τα κοντέινερ που τρέχουν και έχουν σταματήσει (που δεν εκτελούνται):

docker ps -l 

14. Μόλις αποκτήσετε το κοντέινερ ID, μπορείτε να ξεκινήσετε ξανά το κοντέινερ με την εντολή που χρησιμοποιήθηκε για τη δημιουργία του, εκδίδοντας την ακόλουθη εντολή:

docker start 923a720da57f

Εδώ, η συμβολοσειρά 923a720da57f αντιπροσωπεύει το κοντέινερ ID.

15. Σε περίπτωση που το κοντέινερ βρίσκεται σε κατάσταση λειτουργίας, μπορείτε να λάβετε το αναγνωριστικό του εκδίδοντας την εντολή docker ps. Για να σταματήσετε το πρόβλημα του κοντέινερ που εκτελείται, η εντολή docker stop καθορίζοντας το ID του κοντέινερ ή το όνομα που δημιουργήθηκε αυτόματα.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. Μια πιο κομψή εναλλακτική λύση, ώστε να μην χρειάζεται να θυμάστε το κοντέινερ ID θα ήταν να εκχωρήσετε ένα μοναδικό όνομα για κάθε κοντέινερ που δημιουργείτε χρησιμοποιώντας το - -name επιλογή στη γραμμή εντολών, όπως στο ακόλουθο παράδειγμα:

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17. Στη συνέχεια, χρησιμοποιώντας το όνομα που εκχωρήσατε για το κοντέινερ, μπορείτε να χειριστείτε το κοντέινερ (έναρξη, διακοπή, κατάργηση ισχυρό>, κορυφαίο, στατιστικά) περαιτέρω απλώς αναφέροντας το όνομά του, όπως στα παρακάτω παραδείγματα:

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

Λάβετε υπόψη ότι ορισμένες από τις παραπάνω εντολές ενδέχεται να μην εμφανίζουν έξοδο εάν ολοκληρωθεί η διαδικασία εντολής που χρησιμοποιήθηκε για τη δημιουργία του κοντέινερ. Όταν ολοκληρωθεί η διαδικασία που εκτελείται μέσα στο δοχείο, το δοχείο σταματά.

Βήμα 4: Εκτελέστε μια διαδραστική περίοδο λειτουργίας σε ένα κοντέινερ

18. Για να συνδεθείτε διαδραστικά σε μια περίοδο λειτουργίας κελύφους κοντέινερ και να εκτελέσετε εντολές όπως κάνετε σε οποιαδήποτε άλλη περίοδο λειτουργίας Linux, εκδώστε την ακόλουθη εντολή:

docker run -it ubuntu bash

Η παραπάνω εντολή χωρίζεται ως εξής:

  1. Το -i χρησιμοποιείται για την έναρξη μιας διαδραστικής συνεδρίας.
  2. Το -t εκχωρεί ένα TTY και επισυνάπτει το stdin και το stdout.
  3. Το ubuntu είναι η εικόνα που χρησιμοποιήσαμε για να δημιουργήσουμε το κοντέινερ.
  4. Το bash/bin/bash) είναι η εντολή που εκτελούμε μέσα στο κοντέινερ του Ubuntu.

19. Για να κλείσετε και να επιστρέψετε στον κεντρικό υπολογιστή από την τρέχουσα περίοδο λειτουργίας κοντέινερ, πρέπει να πληκτρολογήσετε την εντολή exit. Η εντολή exit τερματίζει όλες τις διαδικασίες του κοντέινερ και τη σταματά.

exit

20. Εάν έχετε συνδεθεί διαδραστικά στη γραμμή εντολών τερματικού κοντέινερ και πρέπει να διατηρήσετε το κοντέινερ σε κατάσταση λειτουργίας αλλά έξτε από τη διαδραστική περίοδο λειτουργίας, μπορείτε να τερματίσετε< την κονσόλα και επιστρέψτε στο τερματικό του κεντρικού υπολογιστή πατώντας τα πλήκτρα Ctrl+p και Ctrl+q.

21. Για να συνδεθείτε ξανά στο τρέχον κοντέινερ, χρειάζεστε το ID ή το όνομα του κοντέινερ. Εκδώστε την εντολή docker ps για να λάβετε το ID ή όνομα και, στη συνέχεια, εκτελέστε την εντολή docker attach προσδιορίζοντας το κοντέινερ Αναγνωριστικό ή όνομα, όπως φαίνεται στην παραπάνω εικόνα:

docker attach <container id>

22. Για να διακόψετε ένα κοντέινερ που εκτελείται από την περίοδο λειτουργίας κεντρικού υπολογιστή, εκδώστε την ακόλουθη εντολή:

docker kill <container id>

Αυτό είναι όλο για τον βασικό χειρισμό του κοντέινερ. Στο επόμενο σεμινάριο, θα συζητήσουμε τον τρόπο αποθήκευσης, διαγραφής και εκτέλεσης ενός διακομιστή web σε ένα κοντέινερ Docker.