Docker Workshop – Επισκόπηση
Επισκόπηση
Αυτό το workshop καλύπτει τη διαδρομή από τις βασικές έννοιες του Docker έως την προχωρημένη λειτουργία του και το Security Hardening. Η δομή του ακολουθεί το Kubernetes Workshop: τεκμηρίωση αναφοράς, τέσσερα επίπεδα workshop, ασκήσεις, Assessments, λύσεις, επίσημες πηγές και 31 πρακτικά παραδείγματα.
Η έμφαση δίνεται στην πραγματική χρήση του Docker:
- Κατανόηση των Docker Engine, CLI, Daemon και API.
- Κατανόηση των Images, Layers, Tags, Digests και Registries.
- Δημιουργία Dockerfiles που είναι αναπαραγώγιμα και εύκολα στη συντήρηση.
- Διαχείριση του Container Lifecycle, των Networks, Ports, Volumes και Logs.
- Δομημένος έλεγχος και λειτουργία Compose projects.
- Χρήση του Docker σε CI/CD, Registry και platform περιβάλλοντα.
- Αξιολόγηση των Rootless Mode, προστασίας του Socket, User Namespaces, Capabilities, Seccomp και AppArmor.
- Συστηματικό Troubleshooting και ασφαλές Cleanup των labs.
Γρήγορη εκκίνηση
Αφού κατεβάσετε τα αρχεία του πρακτικού module από τη σελίδα του workshop, ελέγξτε πρώτα το provisioning script με --dry-run:
chmod +x scripts/provision_docker.sh
./scripts/provision_docker.sh --dry-run
Σε ένα έτοιμο Linux lab περιβάλλον, ελέγξτε τις διαθέσιμες λειτουργίες:
docker version
docker context ls
docker info
docker run --rm alpine:3.20 echo docker-workshop-ok
Διαδρομή μάθησης
| Επίπεδο | Εστίαση | Workshop | Ασκήσεις | Assessment |
|---|---|---|---|---|
| 01 | Fundamentals | Workshop Fundamentals | Ασκήσεις Fundamentals | Assessment Fundamentals |
| 02 | Intermediate | Workshop Intermediate | Ασκήσεις Intermediate | Assessment Intermediate |
| 03 | Professional | Workshop Professional | Ασκήσεις Professional | Assessment Professional |
| 04 | Advanced Security | Workshop Advanced Security | Ασκήσεις Advanced Security | Assessment Advanced Security |
Τεκμηρίωση
- Αρχιτεκτονική
- Best Practices
- Εντολές
- Έννοιες
- Curriculum
- Διαγράμματα
- Cloud περιβάλλον
- Bare Metal περιβάλλον
- VM περιβάλλον
- WSL περιβάλλον
- Λειτουργία
- Security
- Troubleshooting
Όλα τα έγγραφα αυτής της ενότητας είναι πλέον διαθέσιμα στα ελληνικά.
Παραδείγματα
Τα 31 πρακτικά modules παρατίθενται στην επισκόπηση παραδειγμάτων. Κάθε module περιλαμβάνει κύρια περιγραφή, τεκμηρίωση ανά διαθέσιμη γλώσσα, αρχεία που μπορούν να ελεγχθούν και ένα run.sh που ελέγχει τα τοπικά αρχεία. Τα παραδείγματα δεν δημιουργούν Images ούτε ξεκινούν μακρόβιους Containers χωρίς ρητή απόφαση του εκπαιδευόμενου.
Δομή του workshop
.
├── assessments/
├── docs/
├── examples/
├── exercises/
├── media/
│ └── pics/
├── scripts/
├── workshops/
├── LICENSE.md
└── README-EL.md
Τρόπος εργασίας
- Διαβάστε πρώτα το κατάλληλο έγγραφο στην ενότητα
docs/. - Ολοκληρώστε το αντίστοιχο επίπεδο του workshop στην ενότητα
workshops/. - Χρησιμοποιήστε τα παραδείγματα ως ελεγχόμενα lab artifacts.
- Κάντε τις ασκήσεις και καταγράψτε εντολές, παρατηρήσεις και βήματα Cleanup.
- Ελέγξτε τις γνώσεις σας με τα Assessments και τις λύσεις.
Σημαντικός κανόνας ασφαλείας
Ο Docker Daemon έχει ευρεία πρόσβαση στο σύστημα. Η δυνατότητα εγγραφής στο Docker Socket σημαίνει συχνά πρακτικό έλεγχο του Host. Μη χρησιμοποιείτε πραγματικά Secrets σε αυτό το workshop, μη μοιράζεστε production Registry Tokens και μη συνδέετε ευαίσθητες Host διαδρομές σε lab Containers.
Επίσημες πηγές και πεδίο εφαρμογής
Το υλικό βασίζεται σε δημόσια τεκμηρίωση του Docker. Όταν αναφέρονται εξωτερικά εργαλεία γύρω από το Docker Engine, παρουσιάζονται ως συμπληρωματική λειτουργική πρακτική και όχι ως λειτουργίες του ίδιου του Docker Engine.
- Docker Engine: https://docs.docker.com/engine/
- Dockerfile Reference: https://docs.docker.com/reference/dockerfile/
- Compose File Reference: https://docs.docker.com/reference/compose-file/
- Compose Specification: https://github.com/compose-spec/compose-spec/blob/master/spec.md
- Docker Engine Security: https://docs.docker.com/engine/security/
- Docker Rootless Mode: https://docs.docker.com/engine/security/rootless/
- Protect the Docker Daemon Socket: https://docs.docker.com/engine/security/protect-access/
- Docker Build Best Practices: https://docs.docker.com/build/building/best-practices/
- Docker Training: https://www.docker.com/trainings/
Άδεια χρήσης
Δείτε το LICENSE.md.
Πρόσθετες ασκήσεις Review
Χρησιμοποιήστε αυτές τις ασκήσεις όταν ολοκληρώσετε την κύρια εργασία και θέλετε να εξασκηθείτε περισσότερο στην τεκμηρίωση λειτουργικών αποφάσεων. Εστιάζουν σε ελέγξιμα στοιχεία και δεν απαιτούν υποθέσεις για ανύπαρκτες λειτουργίες της πλατφόρμας.
Drill 01: Image Provenance
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Image Provenance. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 02: Build Context
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Build Context. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 03: Layer Order
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Layer Order. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 04: Container User
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Container User. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 05: Mounts and Volumes
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Mounts and Volumes. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 06: Bridge Network
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Bridge Network. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 07: Port Publishing
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Port Publishing. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 08: Compose Configuration
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Compose Configuration. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 09: Daemon Socket
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Daemon Socket. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 10: Registry Access
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Registry Access. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 11: Rootless Mode
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Rootless Mode. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 12: Seccomp and Capabilities
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Seccomp and Capabilities. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 13: Logs and Events
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Logs and Events. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 14: Cleanup and Rollback
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Cleanup and Rollback. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 15: Image Provenance
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Image Provenance. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.
Drill 16: Build Context
- Προσδιορίστε ποιο Docker object ή ποιο Host boundary επηρεάζεται από το
Build Context. - Αναφέρετε μία εντολή που προσφέρει ελέγξιμο στοιχείο και ένα σχετικό πεδίο στην έξοδό της.
- Εξηγήστε τι αποδεικνύει αυτό το στοιχείο και τι δεν μπορεί να αποδείξει.
- Περιγράψτε την ασφαλέστερη διαδικασία Cleanup σε έναν κοινόχρηστο training Host.