Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks
Πίνακας περιεχομένων:
Η σύνδεση με ένα τρέχον δοχείο Docker είναι χρήσιμη όταν θέλετε να δείτε τι συμβαίνει μέσα στο δοχείο. Εάν το δοχείο Docker δεν λειτουργεί όπως αναμένεται, μπορείτε να επισυνάψετε στο δοχείο ή να πάρετε ένα κέλυφος στο δοχείο και να εκτελέσετε εντολές όπως
ps
ή
top
. Μπορείτε επίσης να εισάγετε το κοντέινερ, να εγκαταστήσετε νέα πακέτα και να δημιουργήσετε μια νέα εικόνα Docker από αυτό.
Σε αυτό το σεμινάριο, θα σας εξηγήσουμε πώς να επισυνάπτετε την κύρια διαδικασία εκτέλεσης του κοντέινερ και πώς να αποκτήσετε ένα κέλυφος σε ένα τρέχον δοχείο.
Συνδέστε σε ένα κοντέινερ
Αν και είναι δυνατή η εκτέλεση πολλαπλών διαδικασιών σε ένα κοντέινερ, τα περισσότερα κοντέινερ υποδοχής εκτελούν μόνο μία διαδικασία. Η εντολή που εκτελείται κατά την εκκίνηση ενός δοχείου καθορίζεται χρησιμοποιώντας τις
ENTRYPOINT
και / ή
RUN
.
Η εντολή
docker attach
σας επιτρέπει να προσαρμόσετε το τερματικό σας στο τρέχον δοχείο. Αυτό είναι χρήσιμο όταν θέλετε να δείτε τι γράφεται στην τυπική έξοδο σε πραγματικό χρόνο ή για να ελέγξετε τη διαδικασία διαδραστικά.
Για να καταλάβουμε καλύτερα πώς λειτουργεί η εντολή
attach
ας τρέξουμε ένα νέο αποσπασμένο δοχείο Nginx χρησιμοποιώντας την επίσημη εικόνα Nginx.
docker container run --name my_nginx -d -p 8080:80 nginx
Η επιλογή
-p 8080:80
λέει στο Docker να δεσμεύσει τη θύρα 8080 του κοντέινερ στη θύρα 80 στο μηχάνημα υποδοχής.
Καταχωρίστε τα δοχεία για να βεβαιωθείτε ότι το δοχείο "my_nginx" εκτελείται:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8e1c4974a8d8 nginx "nginx -g 'daemon of…" 3 minutes ago Up 2 seconds 0.0.0.0:8080->80/tcp my_nginx
Επισυνάψτε στο κοντέινερ χρησιμοποιώντας το αναγνωριστικό ή το όνομα του κοντέινερ:
docker container attach my_nginx
Η προεπιλεγμένη εντολή της εικόνας nginx που εκτελείται κατά την εκτέλεση του κοντέινερ έχει οριστεί σε
CMD
. Όταν εκτελείτε την εντολή
attach
το τερματικό σας συνδέεται στη διαδικασία
nginx
.
Ανοίξτε το
127.0.0.1:8080
στο πρόγραμμα περιήγησης και μπορείτε να παρακολουθήσετε την έξοδο της διαδικασίας nginx σε πραγματικό χρόνο.
192.168.33.1 - - "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-" 192.168.33.1 - - "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.33.71:8080/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36" "-"
Για να αποκτήσετε πρόσβαση στα αρχεία καταγραφής δοχείων, θα πρέπει να προτιμήσετε να χρησιμοποιήσετε την εντολή
docker logs
.
Για να αποσυνδεθείτε από το δοχείο χωρίς να τον σταματήσετε, χρησιμοποιήστε τον
CTRL-p
CTRL-q
. Πατώντας
CTRL-c
σταματάει η συσκευασία.
Εάν οι τρέχουσες διεργασίες που συνδέετε με τις εισερχόμενες αποστολές, μπορείτε να τους στείλετε οδηγίες.
Πάρτε μια Shell σε ένα κοντέινερ
Η εντολή
docker exec
σας επιτρέπει να εκτελέσετε εντολές μέσα σε ένα τρέχον δοχείο.
Για να δείτε πώς λειτουργεί η εντολή
exec
και πώς μπορεί να χρησιμοποιηθεί για να εισέλθει στο κέλυφος κοντέινερ, ξεκινήστε πρώτα ένα νέο κοντέινερ. Θα χρησιμοποιήσουμε την επίσημη εικόνα MySQL:
docker container run --name my_mysql -d mysql
Αυτό θα δημιουργήσει ένα κοντέινερ που ονομάζεται "my_mysql".
Για να εκτελέσετε μια εντολή μέσα στο κοντέινερ, εκτελέστε την ακόλουθη εντολή:
docker container exec -it my_mysql ls /var
Η επιλογή
-i
σημαίνει αλληλεπιδραστική και
-t
λέει στο Docker να εκχωρήσει μια συσκευή pseudo TTY. Η εντολή
ls
θα εμφανίσει όλα τα αρχεία και τους καταλόγους μέσα στον κατάλογο
/var
του κοντέινερ:
backups cache lib local lock log mail opt run spool tmp
Για να αποκτήσετε ένα κέλυφος στο δοχείο, δηλαδή, για να εισέλθετε μέσα στο δοχείο, ξεκινήστε μια νέα περίοδο λειτουργίας κελύφους εκτελώντας το δυαδικό κέλυφος. Μπορείτε να χρησιμοποιήσετε
sh
,
bash
ή οποιοδήποτε άλλο κέλυφος που περιλαμβάνεται στην εικόνα.
Η παρακάτω εντολή θα δημιουργήσει μια νέα συνεδρία Bash μέσα στο κοντέινερ:
docker container exec -it my_mysql /bin/bash
Η γραμμή εντολών σας θα αλλάξει, υποδεικνύοντας ότι εργάζεστε τώρα στο κέλυφος του δοχείου.
Από εδώ, μπορείτε να εκτελέσετε εντολές με τον ίδιο τρόπο που θα κάνατε σε οποιοδήποτε άλλο διακομιστή Linux. Για παράδειγμα, για να λάβετε μια λίστα με τις τρέχουσες μεταβλητές περιβάλλοντος τύπου
env
:
env
Η έξοδος θα φαίνεται κάπως έτσι:
HOSTNAME=e0214d97e0fe MYSQL_ROOT_PASSWORD=my-secret-pw PWD=/ HOME=/root MYSQL_MAJOR=8.0 GOSU_VERSION=1.7 MYSQL_VERSION=8.0.17-1debian9 TERM=xterm SHLVL=1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin _=/usr/bin/env
συμπέρασμα
Οι εντολές
docker exec
και
docker attach
σας επιτρέπουν να συνδεθείτε με ένα τρέχον δοχείο. Για να αποκτήσετε ένα διαδραστικό κέλυφος σε ένα κοντέινερ, χρησιμοποιήστε την εντολή
exec
για να ξεκινήσετε μια νέα περίοδο λειτουργίας κελύφους. Η εντολή
attach
συνδέει το τερματικό σας με ένα τρέχον δοχείο.
Google Plus Συνδεθείτε, εγγραφείτε και συνδεθείτε Συμβουλές ασφάλειας
Συνδεθείτε στο Google Plus, ανασηκώστε, συμβουλές υπογραφής που μπορείτε να χρησιμοποιήσετε για την ενίσχυση την ασφάλεια και την ιδιωτικότητα. Μάθετε πώς να παραμένετε ασφαλείς και ασφαλείς στο διαδίκτυο στο λογαριασμό σας στο Google Plus.
Πώς να αποκτήσετε ένα δοχείο ανακύκλωσης όπως σε οποιαδήποτε συσκευή Android
Κατά λάθος διαγράψατε ένα αρχείο από το κινητό σας τηλέφωνο Android και, στη συνέχεια, σας καταραμένος; Γιατί δεν παίρνετε αντί του Windows Recycle Bin; Διαβάστε παρακάτω για να μάθετε πώς.
Πώς να διορθώσετε ένα κατεστραμμένο δοχείο ανακύκλωσης στα παράθυρα 10
Δεν είναι δυνατό να ανοίξει ο Κάδος Ανακύκλωσης στα Windows 10; Λάβετε κάποιο σφάλμα; Εδώ είναι 6 τρόποι για να διορθώσετε το κατεστραμμένο σφάλμα του Κάδου Ανακύκλωσης, ώστε να μπορείτε να το εκκενώσετε ή να επαναφέρετε τα διαγραμμένα αρχεία.







