Web Scraping with Nokogirl/Kimono by Robert Krabek
Πίνακας περιεχομένων:
- Άδεια εκτέλεσης του Docker
- Εκτελέστε το κοντέινερ στο προσκήνιο
- Εκτελέστε το κοντέινερ σε λειτουργία ξεχωριστά
- Αφαιρέστε το δοχείο μετά την έξοδο
- Ορίστε το όνομα κοντέινερ
- Δημοσίευση θυρών εμπορευματοκιβωτίων
- Κοινή χρήση δεδομένων (τόμοι συναρμολόγησης)
- Εκτελέστε το δοχείο διαδραστικά
- συμπέρασμα
Το Docker είναι μια πλατφόρμα που σας επιτρέπει να αναπτύξετε, να δοκιμάσετε και να αναπτύξετε εφαρμογές ως φορητά, αυτοδύναμα δοχεία που λειτουργούν σχεδόν οπουδήποτε.
Η εντολή
docker run
δημιουργεί ένα δοχείο από μια δεδομένη εικόνα και ξεκινά το δοχείο χρησιμοποιώντας μια δεδομένη εντολή. Είναι μία από τις πρώτες εντολές στις οποίες θα πρέπει να εξοικειωθείτε όταν ξεκινάτε να δουλεύετε με το Docker., θα χρησιμοποιήσουμε την επίσημη εικόνα Nginx για να δείξουμε διάφορους τρόπους για να τρέξουμε ένα δοχείο Docker.
Άδεια εκτέλεσης του Docker
Η εντολή
docker run
λαμβάνει την ακόλουθη μορφή:
docker run IMAGE
Το όνομα της εικόνας από το οποίο πρέπει να δημιουργηθεί το κοντέινερ είναι το μόνο απαιτούμενο όρισμα για την εντολή
docker run
του
docker run
. Εάν η εικόνα δεν υπάρχει στο τοπικό σύστημα, τραβιέται από το μητρώο.
Εάν δεν έχει οριστεί καμία εντολή, η εντολή που καθορίζεται στις οδηγίες
CMD
ή
ENTRYPOINT
εκτελείται κατά την εκτέλεση του κοντέινερ.
Ξεκινώντας από την έκδοση 1.13, το Docker CLI έχει αναδιαρθρωθεί και όλες οι εντολές έχουν ομαδοποιηθεί κάτω από το αντικείμενο με το οποίο αλληλεπιδρούν.
Από τη στιγμή που η εντολή
run
αλληλεπιδρά με τα εμπορευματοκιβώτια, τώρα είναι μια υποσύνολη
docker container
. Η σύνταξη της νέας εντολής έχει ως εξής:
docker container run IMAGE
Η παλιά σύνταξη πριν 1.13 εξακολουθεί να υποστηρίζεται. Κάτω από την κουκούλα, η εντολή
docker run
είναι ένα ψευδώνυμο για το
docker container run
. Οι χρήστες ενθαρρύνονται να χρησιμοποιούν τη νέα σύνταξη εντολών.
Μια λίστα με όλες τις επιλογές
docker container run
μπορεί να βρεθεί στη σελίδα τεκμηρίωσης του Docker.
Εκτελέστε το κοντέινερ στο προσκήνιο
Από προεπιλογή, όταν δεν παρέχεται επιλογή στην εντολή
docker run
, η διαδικασία ρίζας ξεκινάει στο προσκήνιο. Αυτό σημαίνει ότι η τυπική είσοδος, έξοδος και σφάλμα από τη διαδικασία ρίζας συνδέονται με την περίοδο τερματισμού.
docker container run nginx
Η έξοδος της διαδικασίας nginx θα εμφανιστεί στο τερματικό σας. Δεδομένου ότι δεν υπάρχουν συνδέσεις με τον διακομιστή ιστού, το τερματικό είναι κενό.
Για να διακόψετε τη λειτουργία του δοχείου, τερματίστε τη διαδικασία Nginx που εκτελείται πατώντας
CTRL+C
Εκτελέστε το κοντέινερ σε λειτουργία ξεχωριστά
Για να διατηρήσετε το κοντέινερ σε λειτουργία όταν βγείτε από τη συνεδρία του τερματικού, ξεκινήστε τον σε ξεχωριστή λειτουργία. Αυτό είναι παρόμοιο με την εκτέλεση μιας διαδικασίας Linux στο παρασκήνιο.
Χρησιμοποιήστε την επιλογή
-d
για να ξεκινήσετε ένα αποσπασμένο κοντέινερ:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Το αποσυνδεδεμένο δοχείο θα σταματήσει όταν ολοκληρωθεί η διαδικασία ρίζας.
Μπορείτε να απαριθμήσετε τα τρέχοντα δοχεία χρησιμοποιώντας την εντολή
docker container ls
.
Για να επισυνάψετε το τερματικό σας στη διεργασία αποσύνδεσης του ριζικού παραθύρου, χρησιμοποιήστε την εντολή
docker container attach
.
Αφαιρέστε το δοχείο μετά την έξοδο
Από προεπιλογή, όταν το δοχείο εξέρχεται, το σύστημα αρχείων του εξακολουθεί να υπάρχει στο σύστημα κεντρικού υπολογιστή.
Οι επιλογές
--rm
εντολή
docker run
για να αφαιρέσει το δοχείο όταν εξέρχεται αυτόματα:
docker container run --rm nginx
Η εικόνα Nginx μπορεί να μην είναι το καλύτερο παράδειγμα για να καθαρίσετε το σύστημα αρχείων του δοχείου μετά την έξοδο του δοχείου. Αυτή η επιλογή χρησιμοποιείται συνήθως σε κοντέινερ προσκηνίου που εκτελούν βραχυπρόθεσμες εργασίες όπως δοκιμές ή δημιουργία αντιγράφων ασφαλείας βάσεων δεδομένων.
Ορίστε το όνομα κοντέινερ
Στο Docker, κάθε κοντέινερ αναγνωρίζεται από το
UUID
και το όνομα του. Από προεπιλογή, εάν δεν έχει οριστεί ρητά, το όνομα του κοντέινερ παράγεται αυτόματα από τον δαίμονα Docker.
Χρησιμοποιήστε την επιλογή
--name
για να ορίσετε ένα προσαρμοσμένο όνομα στο κοντέινερ:
docker container run -d --name my_nginx nginx
Το όνομα του δοχείου πρέπει να είναι μοναδικό. Εάν προσπαθήσετε να ξεκινήσετε ένα άλλο κοντέινερ με το ίδιο όνομα, θα λάβετε ένα σφάλμα παρόμοιο με αυτό:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Εκτελέστε το
docker container ls -a
για να καταγράψετε όλα τα δοχεία και δείτε τα ονόματά τους:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
Τα σημαντικά ονόματα είναι χρήσιμα για να αναφερθεί το δοχείο μέσα σε ένα δίκτυο Docker ή όταν εκτελούνται εντολές CLI docker.
Δημοσίευση θυρών εμπορευματοκιβωτίων
Από προεπιλογή, εάν δεν έχουν δημοσιευτεί θύρες, η διαδικασία που εκτελείται στο κοντέινερ είναι προσβάσιμη μόνο μέσα από το δοχείο.
Οι θύρες εκδόσεων σημαίνουν τη χαρτογράφηση θύρας κοντέινερ στις θύρες μηχανής υποδοχής, έτσι ώστε οι θύρες να είναι διαθέσιμες σε υπηρεσίες εκτός του Docker.
Για να δημοσιεύσετε μια θύρα, χρησιμοποιήστε τις επιλογές
-p
ως εξής:
-p host_ip:host_port:container_port/protocol
- Αν δεν έχει οριστεί το
host_ip, τότε το προεπιλεγμένο επίπεδο είναι0.0.0.0. Αν δεν έχει καθοριστείprotocol, το προεπιλεγμένο είναι TCP. Για να δημοσιεύσετε πολλαπλές θύρες, χρησιμοποιήστε πολλαπλές επιλογές-p.
Για να αντιστοιχίσετε τη θύρα TCP 80 (nginx) στο κιβώτιο στη θύρα 8080 στη διεπαφή hosthost localhost, θα εκτελέσετε:
docker container run --name web_server -d -p 8080:80 nginx
Μπορείτε να επαληθεύσετε ότι η θύρα εκδίδεται ανοίγοντας το
http://localhost:8080
στο πρόγραμμα περιήγησής σας ή εκτελώντας την ακόλουθη εντολή
curl
στο host του Docker:
curl -I
Η έξοδος θα φαίνεται κάπως έτσι:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Κοινή χρήση δεδομένων (τόμοι συναρμολόγησης)
Όταν τερματίζεται ένα δοχείο, καταργούνται όλα τα δεδομένα που δημιουργούνται από το δοχείο. Οι τόμοι Docker είναι ο προτιμώμενος τρόπος για να διατηρήσετε τα δεδομένα και να τα μοιραστείτε σε πολλά κοντέινερ.
Για να δημιουργήσετε και να διαχειριστείτε τόμους, χρησιμοποιήστε τις επιλογές
-p
ως εξής:
-v host_src:container_dest:options
- Το
host_srcμπορεί να είναι μια απόλυτη διαδρομή προς ένα αρχείο ή έναν κατάλογο στον κεντρικό υπολογιστή ή σε ένα όνομα τόμου. Τοcontainer_destείναι μια απόλυτη διαδρομή προς ένα αρχείο ή κατάλογο στον περιέκτη. Οιhost_srcμπορούν να είναιrw(read-write) καιro(read-only). Αν δεν έχει οριστεί καμία επιλογή, η προεπιλεγμένη τιμή είναιrw.
Για να εξηγήσουμε πώς λειτουργεί αυτό, ας δημιουργήσουμε έναν κατάλογο στον κεντρικό υπολογιστή και βάζουμε ένα αρχείο
index.html
σε αυτό:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Στη συνέχεια, τοποθετήστε τον κατάλογο
public_html
στο
/usr/share/nginx/html
στο κοντέινερ:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
Αντί να καθορίσουμε την απόλυτη διαδρομή προς τον
public_html
κατάλογο, χρησιμοποιούμε την εντολή
$(pwd)
, η οποία εκτυπώνει τον τρέχοντα κατάλογο εργασίας.
Τώρα, αν πληκτρολογήσετε
http://localhost:8080
στο πρόγραμμα περιήγησής σας, θα πρέπει να δείτε τα περιεχόμενα του αρχείου
index.html
. Μπορείτε επίσης να χρησιμοποιήσετε το
curl
:
curl
Εκτελέστε το δοχείο διαδραστικά
Όταν ασχολείσαι με τις διαδραστικές διαδικασίες όπως
bash
, χρησιμοποιήστε τις επιλογές
-i
και
-t
για να ξεκινήσετε το δοχείο.
Οι επιλογές
-it
λένε στο Docker να διατηρεί την τυποποιημένη είσοδο που είναι συνδεδεμένη στο τερματικό και να διαθέτει ψευδο-tty:
docker container run -it nginx /bin/bash
Το κέλυφος Bash του κοντέινερ θα συνδεθεί στο τερματικό και η γραμμή εντολών θα αλλάξει:
root@1da70f1937f5:/#
Τώρα, μπορείτε να αλληλεπιδράσετε με το κέλυφος του κοντέινερ και να εκτελέσετε οποιαδήποτε εντολή στο εσωτερικό του.
Σε αυτό το παράδειγμα, δώσαμε μια εντολή (
/bin/bash
) ως ένα όρισμα στην εντολή
docker run
του
docker run
που εκτελέστηκε αντί εκείνης που καθορίστηκε στο αρχείο Docker.
συμπέρασμα
Το Docker είναι το πρότυπο για τη συσκευασία και την ανάπτυξη εφαρμογών και ένα βασικό συστατικό του CI / CD, αυτοματισμού και DevOps.
Η εντολή
docker container run
χρησιμοποιείται για τη δημιουργία και τη λειτουργία δοχείων Docker.
. Στο τρέχον συνέδριο ασφάλειας RSA σήμερα, ο Graham Cluley της Sophos έδειξε παραδείγματα τόσο κακόβουλων όσο και prankster επιθέσεων στα κοινωνικά δίκτυα, που περιγράφηκε παραπάνω, και τον πρόσφατο σκουλήκι "Mikeyy". Πολλά από αυτά τα παραδείγματα χρησιμοποίησαν το TinyURL ή άλλη υπηρεσία συντόμευσης-συντόμευσης για να κρύψουν έναν κακόβουλο σύνδεσμο σε μια δημοσίευση ή ένα μήνυμα προφίλ. Οι χρήστες του Twitter, ιδίως, κάνουν συχνά νόμιμη χρήση της υπηρεσίας για να εξοικονομήσουν χώρ
Μία επιλογή για το TinyURL είναι να κόψετε και να επικολλήσετε τον σύνδεσμο σε μια νέα καρτέλα προγράμματος περιήγησης και να προσθέσετε την προεπισκόπηση στον σύνδεσμο, όπως περιγράφεται εδώ. Αλλά ο Cluley είπε ότι χρησιμοποιεί το addon LongURL όταν κάνει περιήγηση με τον Firefox και αφού το δοκιμάσει ο ίδιος, καταλαβαίνω γιατί
Echo εντολή στο linux με παραδείγματα
Η εντολή echo είναι μία από τις πιο βασικές και συχνά χρησιμοποιούμενες εντολές στο Linux. Τα επιχειρήματα που διαβιβάζονται στην ηχώ εκτυπώνονται στην τυπική έξοδο.
Curl εντολή στο linux με παραδείγματα
Το Curl είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών για τη μεταφορά δεδομένων από ή σε ένα διακομιστή που έχει σχεδιαστεί για να λειτουργεί χωρίς αλληλεπίδραση χρηστών. Σε αυτό το σεμινάριο, θα σας δείξουμε πώς να χρησιμοποιήσετε το εργαλείο μπούκλα μέσω πρακτικών παραδειγμάτων και λεπτομερείς εξηγήσεις των πιο κοινών επιλογών μπούκλα.







