Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks
Πίνακας περιεχομένων:
- Τι είναι το Dockerfile
- Δημιουργήστε ένα αρχείο Docker
- Δημιουργία της εικόνας
- Εκτέλεση ενός κοντέινερ
- συμπέρασμα
Μια εικόνα Docker είναι το σχέδιο των δοχείων Docker που περιέχει την εφαρμογή και όλα όσα χρειάζεστε για να εκτελέσετε την εφαρμογή. Ένα κοντέινερ είναι μια στιγμή εκτέλεσης μιας εικόνας.
Σε αυτό το σεμινάριο, θα εξηγήσουμε τι είναι το Dockerfile, πώς να το δημιουργήσετε και πώς να δημιουργήσετε μια εικόνα Docker με το Dockerfile.
Τι είναι το Dockerfile
Ένα Dockerfile είναι ένα αρχείο κειμένου που περιέχει όλες τις εντολές που μπορεί να εκτελέσει ένας χρήστης στη γραμμή εντολών για να δημιουργήσει μια εικόνα. Περιλαμβάνει όλες τις οδηγίες που χρειάζεται το Docker για να δημιουργήσει την εικόνα.
Οι εικόνες Docker αποτελούνται από μια σειρά από στρώματα συστημάτων αρχείων που αντιπροσωπεύουν οδηγίες στο Dockerfile της εικόνας που αποτελεί μια εκτελέσιμη εφαρμογή λογισμικού.
Το αρχείο Docker έχει την ακόλουθη μορφή:
# Comment INSTRUCTION arguments
INSTRUCTION
δεν γίνεται
INSTRUCTION
πεζών-κεφαλαίων, αλλά η σύμβαση είναι να χρησιμοποιήσετε το UPPERCASE για τα ονόματά της.
Παρακάτω είναι η λίστα με μια σύντομη περιγραφή μερικών από τις πιο χρησιμοποιούμενες οδηγίες Dockerfile:
- ARG - Αυτή η εντολή σάς επιτρέπει να ορίσετε μεταβλητές που μπορούν να μεταβιβαστούν κατά την κατασκευή χρόνου. Μπορείτε επίσης να ορίσετε μια προεπιλεγμένη τιμή. FROM - Η εικόνα βάσης για την οικοδόμηση μιας νέας εικόνας. Αυτή η εντολή πρέπει να είναι η πρώτη οδηγία χωρίς σχόλια στο αρχείο Docker. Η μόνη εξαίρεση από αυτόν τον κανόνα είναι όταν θέλετε να χρησιμοποιήσετε μια μεταβλητή στο όρισμα
FROM. Σε αυτήν την περίπτωση,FROMμπορεί να προηγηθεί μία ή περισσότερες οδηγίεςARG. LABEL - Χρησιμοποιείται για την προσθήκη μεταδεδομένων σε μια εικόνα, όπως περιγραφή, έκδοση, συγγραφέας..etc. Μπορείτε να ορίσετε περισσότερες από μίαLABELκαι κάθε εντολήLABELείναι ένα ζευγάρι κλειδιού-τιμής. RUN - Οι εντολές που καθορίζονται σε αυτή την εντολή θα εκτελούνται κατά τη διάρκεια της διαδικασίας δημιουργίας. Κάθε εντολήRUNδημιουργεί ένα νέο στρώμα πάνω από την τρέχουσα εικόνα. ADD - Χρησιμοποιείται για την αντιγραφή αρχείων και καταλόγων από την καθορισμένη πηγή στον καθορισμένο προορισμό στην εικόνα του docker. Η πηγή μπορεί να είναι τοπικά αρχεία ή κατάλογοι ή μια διεύθυνση URL. Εάν η πηγή είναι ένα τοπικό αρχείο tar, τότε αυτόματα αποσυσκευάζεται στην εικόνα του Docker. COPY - Παρόμοια με τηνADDαλλά η πηγή μπορεί να είναι μόνο τοπικό αρχείο ή κατάλογος. ENV - Αυτή η εντολή σάς επιτρέπει να ορίσετε μια μεταβλητή περιβάλλοντος. CMD - Χρησιμοποιείται για να καθορίσετε μια εντολή που θα εκτελεστεί όταν εκτελείτε ένα κοντέινερ. Μπορείτε να χρησιμοποιήσετε μόνο μία οδηγίαCMDστο αρχείο Docker. ENTRYPOINT - Παρόμοια με τηνCMD, αυτή η εντολή καθορίζει ποια εντολή θα εκτελεστεί κατά την εκτέλεση ενός κοντέινερ. WORKDIR - Αυτή η οδηγία ορίζει τον τρέχοντα κατάλογο εργασίας για τις οδηγίεςRUN,CMD,ENTRYPOINT,COPYκαιADD. USER - Ορίστε το όνομα χρήστη ή τοUIDπου χρησιμοποιείτε όταν εκτελείτε τις παρακάτω οδηγίεςRUN,CMD,ENTRYPOINT,COPYκαιADD. VOLUME - Σας επιτρέπει να συνδέσετε έναν κατάλογο μηχάνημα υποδοχής στο κοντέινερ. EXPOSE - Χρησιμοποιείται για να καθορίσετε τη θύρα στην οποία ακούγεται το δοχείο κατά το χρόνο εκτέλεσης.
Για να αποκλείσετε την προσθήκη αρχείων και καταλόγων στην εικόνα, δημιουργήστε ένα αρχείο
.dockerignore
στον κατάλογο περιεχομένων. Η σύνταξη του
.dockerignore
είναι παρόμοια με αυτή του αρχείου
.gitignore
του Git.
Για πλήρη αναφορά και λεπτομερή επεξήγηση των οδηγιών Dockerfile, ανατρέξτε στην επίσημη σελίδα αναφοράς Dockerfile.
Δημιουργήστε ένα αρχείο Docker
Το πιο συνηθισμένο σενάριο κατά τη δημιουργία εικόνων Docker είναι να τραβήξετε μια υπάρχουσα εικόνα από ένα μητρώο (συνήθως από το Docker Hub) και να καθορίσετε τις αλλαγές που θέλετε να κάνετε στην εικόνα βάσης. Η πιο συχνά χρησιμοποιούμενη εικόνα βάσης κατά τη δημιουργία εικόνων Docker είναι η Alpine επειδή είναι μικρή και βελτιστοποιηθεί για να τρέξει σε RAM.
Σε αυτό το παράδειγμα, θα δημιουργήσουμε μια εικόνα Docker για τον διακομιστή Redis. Θα χρησιμοποιήσουμε το τελευταίο ubuntu 18.04 ως βασική εικόνα.
Αρχικά, δημιουργήστε έναν κατάλογο ο οποίος θα περιέχει το αρχείο Docker και όλα τα απαραίτητα αρχεία:
mkdir ~/redis_docker
Πλοηγηθείτε στον κατάλογο και δημιουργήστε το ακόλουθο αρχείο Docker:
cd ~/redis_docker
nano Dockerfile
Dockerfile
FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y redis-server && \ apt-get clean EXPOSE 6379 CMD
Ας εξηγήσουμε τη σημασία κάθε γραμμής στο Dockerfile:
- Στη γραμμή
1καθορίζουμε την εικόνα βάσης. Η εντολήRUNπου ξεκινά στη γραμμή3θα ενημερώσει το ευρετήριο apt, θα εγκαταστήσει το πακέτο "redis-server" και θα καθαρίσει την cache apt. Οι εντολές που χρησιμοποιούνται στις οδηγίες είναι οι ίδιες με τις εντολές που θα χρησιμοποιούσατε για την εγκατάσταση του redis στον εξυπηρετητή Ubuntu. Η εντολή EXPOSE ορίζει τη θύρα στην οποία ακούγεται ο διακομιστής redis. Στην τελευταία γραμμή, χρησιμοποιούμε την εντολήCMDγια να ορίσετε την προεπιλεγμένη εντολή που θα εκτελούνται όταν τρέχει το δοχείο.
Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή.
Δημιουργία της εικόνας
Το επόμενο βήμα είναι η δημιουργία της εικόνας. Για να το εκτελέσετε, εκτελέστε την ακόλουθη εντολή από τον κατάλογο όπου βρίσκεται το Dockerfile:
docker build -t linuxize/redis.
Η επιλογή
-t
καθορίζει το όνομα της εικόνας και προαιρετικά ένα όνομα χρήστη και ετικέτα στη μορφή 'username / imagename: tag'.
Η έξοδος της διαδικασίας δημιουργίας θα φαίνεται κάπως έτσι:
Sending build context to Docker daemon 3.584kB Step 1/4: FROM ubuntu:18.04 ---> 7698f282e524 Step 2/4: RUN apt-get update && apt-get install -y gosu redis-server && apt-get clean ---> Running in e80d4dd69263… Removing intermediate container e80d4dd69263 ---> e19fb7653fca Step 3/4: EXPOSE 6379 ---> Running in 8b2a45f457cc Removing intermediate container 8b2a45f457cc ---> 13b92565c201 Step 4/4: CMD ---> Running in a67ec50c7048 Removing intermediate container a67ec50c7048 ---> d8acc14d9b6b Successfully built d8acc14d9b6b Successfully tagged linuxize/redis:latest
Όταν ολοκληρωθεί η διαδικασία δημιουργίας, η νέα εικόνα θα εμφανίζεται στη λίστα εικόνων:
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE linuxize/redis latest d8acc14d9b6b 4 minutes ago 100MB ubuntu 18.04 7698f282e524 5 days ago 69.9MB
Εκτέλεση ενός κοντέινερ
Τώρα που δημιουργείται η εικόνα, τρέχετε ένα κοντέινερ από αυτήν εκτελώντας:
docker run -d -p 6379:6379 --name redis linuxize/redis
Οι επιλογές
-d
λένε στο Docker για να εκτελέσει το δοχείο σε αποσπασμένη λειτουργία, η επιλογή
-p 6379:6379
θα δημοσιεύσει τη θύρα 6379 στο μηχάνημα κεντρικού υπολογιστή και η επιλογή
--name redis
καθορίζει το όνομα του κοντέινερ. Το τελευταίο όρισμα
linuxize/redis
είναι το όνομα της εικόνας, το οποίο χρησιμοποιείται για την εκτέλεση του κοντέινερ.
Όταν ξεκινά το δοχείο, χρησιμοποιήστε την ακόλουθη εντολή για να απαριθμήσετε όλα τα τρέχοντα δοχεία:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b7d424cd915 linuxize/redis:v0.0.1 "redis-server '--pro…" 5 minutes ago Up 5 minutes 0.0.0.0:6379->6379/tcp redis
Για να επαληθεύσετε ότι όλα λειτουργούν όπως θα έπρεπε να χρησιμοποιήσετε το
redis-cli
για να συνδεθείτε στο δοχείο docker:
redis-cli ping
Ο διακομιστής redis πρέπει να απαντήσει με
PONG
.
συμπέρασμα
Αυτό το σεμινάριο κάλυψε μόνο τα βασικά της χρήσης του Dockerfiles για την δημιουργία εικόνων. Για να μάθετε περισσότερα σχετικά με τον τρόπο σύνταξης των Dockerfiles και τις συνιστώμενες βέλτιστες πρακτικές, ανατρέξτε στις Βέλτιστες πρακτικές για τη δημιουργία αρχείων Docker.
Πώς να δημιουργήσετε δροσερές εικόνες 3D με το Paint 3D App των Windows 10
Η νέα εφαρμογή Paint 3D για Windows 10 εκσυγχρονίζει τα 30 παλιό εργαλείο Microsoft Pait. Τώρα οι αρχάριοι και οι αρχάριοι μπορούν εύκολα να δημιουργήσουν 3D εικόνες στα Windows 10.
Ας υποθέσουμε ότι έχετε 100 αρχεία .Mp4, 150 αρχεία .mkv, 200 .png εικόνες και κάποια άλλα αρχεία .txt και .docx σε ένα φάκελο. Τώρα, θέλετε να τα οργανώσετε σύμφωνα με τις μορφές αρχείων. Για παράδειγμα, θέλετε να δημιουργήσετε ξεχωριστό φάκελο για βίντεο, εικόνες και έγγραφα. Εάν θέλετε να τα ταξινομήσετε με Extension αρχείου και File Type χειροκίνητα, θα ήταν χρονοβόρα εργασία εάν έχετε χιλιάδες αρχεία σε ένα φάκελο. Πρέπει να τα επιλέξετε πριν μετακινηθείτε. Εάν δημιουργήσετε κάποιο λάθος, τ
Για να σας βοηθήσει με αυτό το πρόβλημα, το
Πώς να δημιουργήσετε εικόνες διπλής έκθεσης σε snapseed
Αναμφισβήτητα, ένας πυροβολισμός διπλής έκθεσης είναι έργο τέχνης. Μάθετε πώς να δημιουργείτε εκπληκτικές εικόνες διπλής έκθεσης χρησιμοποιώντας την εφαρμογή Snapseed της Google.







