- Υλοποίηση εγγενών κοντέινερ χρησιμοποιώντας το wslc.exe για τη μείωση του φόρτου του συστήματος.
- Βελτιστοποίηση απόδοσης χρησιμοποιώντας το backend του WSL 2 σε σύγκριση με προηγούμενες εκδόσεις.
- Απρόσκοπτη ενσωμάτωση με τον κώδικα του Visual Studio και τα κοντέινερ ανάπτυξης για βελτιστοποίηση της ροής εργασίας.
- Ανάλυση των απαιτήσεων άδειας χρήσης και των εκδόσεων των Windows που απαιτούνται για κάθε μέθοδο.
Αν είστε προγραμματιστής που εργάζεστε σε Windows, πιθανότατα έχετε αντιμετωπίσει το παλιό δίλημμα να θέλετε τη δύναμη του Linux χωρίς να χρειάζεται να διαμορφώσετε τον υπολογιστή σας ή να παλέψετε με εικονικές μηχανές που καταλαμβάνουν όλη τη μνήμη RAM. Ευτυχώς, το οικοσύστημα έχει εξελιχθεί τρομερά και τώρα έχουμε επιλογές που κάνουν την ανάπτυξη κοντέινερ Docker σε WSL παιχνιδάκι, επιτρέποντάς μας να έχουμε τα καλύτερα και των δύο κόσμων σε ένα μόνο μηχάνημα.
Τα πράγματα έχουν αλλάξει πολύ τελευταία, καθώς η μετάβαση από δυσκίνητες διαμορφώσεις σε σχεδόν εγγενείς λύσεις έχει γίνει πλέον εφικτή. Είτε ψάχνετε για ένα επαγγελματικό εργαλείο με γραφική διεπαφή είτε προτιμάτε την ελαφρότητα ενός CLI ενσωματωμένου απευθείας στο σύστημα, υπάρχουν σαφείς τρόποι για να ρυθμίσετε το περιβάλλον ανάπτυξής σας χωρίς ο υπολογιστής σας να παρακαλάει για έλεος λόγω έλλειψης μνήμης.
Το νέο παράδειγμα: Εγγενή κοντέινερ με wslc.exe

Η Microsoft έκανε μια τολμηρή κίνηση κυκλοφορώντας μια λειτουργία δημόσιας προεπισκόπησης που επιτρέπει στους χρήστες να εκτελούν κοντέινερ Linux natively. Το αστέρι της παράστασης είναι το wslc.exe, μια διεπαφή γραμμής εντολών που μιμείται τις γνωστές εντολές του Docker, αλλά χωρίς να απαιτεί το Docker Desktop. Το πιο ενδιαφέρον είναι ότι δεν χρησιμοποιεί μια τυπική διανομή WSL. Αντίθετα, εκκινεί ελαφριές μικρο-Ερμηνείες Hyper-V για κάθε κοντέινερ, απομονώνοντας σημαντικά τις διαδικασίες και βελτιώνοντας την ασφάλεια.
Για να ξεκινήσετε να χρησιμοποιείτε αυτό το εργαλείο, πρέπει να έχετε Windows 11 (κατά προτίμηση έκδοση 26100 ή νεότερη) και Ενημέρωση του WSL στην έκδοση προεπισκόπησης χρησιμοποιώντας την εντολή wsl --update --pre-releaseΜόλις γίνει αυτό, απλώς εκτελέστε wsl --install-feature containers για να έχετε τα πάντα έτοιμα. Για να ελέγξετε ότι δεν υπάρχουν σφάλματα, μπορείτε να ξεκινήσετε ένα γρήγορο κοντέινερ με wslc run --rm hello-world Και αν δείτε το μήνυμα χαιρετισμού, αυτό σημαίνει ότι Το περιβάλλον σας είναι λειτουργικό..
Ας ξεκινήσουμε: Δημιουργώντας τη δική σας εικόνα
Όταν θέλετε να μεταβείτε από βασικά παραδείγματα σε κάτι πραγματικό, η ιδανική λύση είναι να χρησιμοποιήσετε τον κώδικα VS με την επέκτασή του WSL. Φανταστείτε ότι έχετε ένα έργο Django. Απλώς πρέπει να δημιουργήσετε ένα αρχείο με το όνομα Αρχείο κοντέινερ στη ρίζα όπου ορίζετε την βασική εικόνα (όπως στην Python 3), αντιγράφετε τις απαιτήσεις και εγκαθιστάτε τις εξαρτήσεις. Στη συνέχεια, χρησιμοποιείτε την εντολή wslc build -t nombre-de-tu-app . για δημιουργήστε την προσαρμοσμένη εικόνα.
Για να το ξεκινήσετε, η εντολή κλειδιού είναι wslc run -d -p 8000:8000 nombre-de-tu-appΑυτό επιτρέπει στα Windows να έχουν πρόσβαση στη θύρα του κοντέινερ. Αν θέλετε να δείτε τι συμβαίνει μέσα, μπορείτε να χρησιμοποιήσετε wslc container logs ή εκτελέστε εσωτερικές εντολές με wslc execΑν παρατηρήσετε ότι ο δίσκος γεμίζει, μην ξεχάσετε να χρησιμοποιήσετε wslc δοχείο δαμάσκηνου για να διαγράψετε ό,τι δεν χρησιμοποιείτε πλέον.
Η κλασική εναλλακτική λύση: Docker Desktop και WSL 2

Παρόλο που οι εγγενείς λύσεις ακούγονται εξαιρετικές, το Docker Desktop παραμένει το πρότυπο λόγω της ωριμότητάς του και της οπτικής διεπαφής του. Το κλειδί εδώ είναι να χρησιμοποιήσετε το WSL 2 backendη οποία είναι απείρως ταχύτερη από την έκδοση 1 χάρη στην ενσωμάτωση ενός πραγματικού πυρήνα Linux και ενός εγγενούς συστήματος αρχείων ext4. Αυτό αντιπροσωπεύει μια τεράστια βελτίωση στο ταχύτητα εισόδου και εξόδου αρχείωνκάνοντας επεμβάσεις όπως npm install o git clone μύγα.
Αν προέρχεστε από μια παλαιότερη εγκατάσταση, το καλύτερο που έχετε να κάνετε είναι ένας σχολαστικός καθαρισμός. Διαγράψτε τους υπολειπόμενους φακέλους που βρίσκονται AppData και να εξαλείψει κάθε ίχνος DOCKER_HOST στο αρχείο .bashrc Είναι σημαντικό να αποφεύγεται το τυπικό λάθος σύνδεση με τον δαίμονα DockerΜόλις καθαριστεί, εγκαταστήστε την πιο πρόσφατη έκδοση του Docker Desktop και βεβαιωθείτε ότι η επιλογή είναι επιλεγμένη στις ρυθμίσεις. ενσωμάτωση με τη διανομή WSL σας.
Χειροκίνητη διαμόρφωση για προχωρημένους χρήστες
Ορισμένοι χρήστες προτιμούν να μην χρησιμοποιούν το Docker Desktop λόγω προβλημάτων με τις εταιρικές άδειες χρήσης ή την κατανάλωση πόρων. Σε αυτήν την περίπτωση, η μηχανή Docker μπορεί να εγκατασταθεί απευθείας στο Ubuntu εντός του WSL. Αυτό περιλαμβάνει τη δημιουργία ενός χρήστη που δεν είναι root για την αποφυγή κινδύνων ασφαλείας και την εκχώρησή του. προνόμια sudo και εκτελέστε την εγκατάσταση του docker.io y docker-compose μέσω τερματικού. Είναι ένας πιο χειροκίνητος τρόπος, αλλά σας δίνει ένα απόλυτος έλεγχος πάνω στον δαίμονα και τους πόρους του συστήματος.
Σύγκριση και επιλογή διαδρομής

Η επιλογή μεταξύ wslc και Docker Desktop εξαρτάται βασικά από το προφίλ σας. Εάν εργάζεστε σε μια μεγάλη εταιρεία και θέλετε αποφύγετε το κόστος αδειοδότησηςΉ αν χρειάζεστε απλώς κοντέινερ για γρήγορη ανάπτυξη σε κώδικα VS, το wslc είναι η νικηφόρα επιλογή. Επιπλέον, η ενσωμάτωση με Κοντέινερ ανάπτυξης κώδικα VS Είναι απλό: απλά πρέπει να αλλάξετε τη διαδρομή Docker σε wslc στις ρυθμίσεις JSON.
Από την άλλη πλευρά, αν βασίζεστε σε ορχηστρωτές όπως το Kubernetes ή το Rancher Desktop , το Docker Desktop παραμένει απαραίτητο, καθώς η εγγενής λύση του WSL δεν καλύπτει ακόμη αυτό το επίπεδο ορχηστρικής ενορχήστρωσης. Επίσης, να θυμάστε ότι τα Windows 11 Pro ή Enterprise είναι υποχρεωτική απαίτηση για τη χρήση των λειτουργιών απομόνωσης Hyper-V που είναι απαραίτητες για το wslc, καθώς η έκδοση Home δεν υποστηρίζει αυτές τις λειτουργίες.
Η ύπαρξη ενός καλά διαμορφωμένου περιβάλλοντος κοντέινερ στα Windows μεταμορφώνει την εμπειρία ανάπτυξης, επιτρέποντάς μας να εναλλάσσουμε εργαλεία ανάλυσης δεδομένων, διακομιστές ιστού και βάσεις δεδομένων χωρίς να επιβαρύνουμε το κύριο λειτουργικό σύστημα. Είτε επιλέγουμε την ελαφριά φύση των μικρο-ΕΜ της Microsoft είτε την ανθεκτικότητα της σουίτας Docker, το κλειδί είναι να αξιοποιήσουμε την αρχιτεκτονική WSL 2 για να μεγιστοποιήσουμε την απόδοση και να διατηρήσουμε την ευελιξία στην καθημερινή μας ροή εργασίας.