Επισκόπηση της διαδικασίας
Για να τρέξετε το SageMath σε ένα Docker container στα Windows, θα ακολουθήσουμε μια σύγχρονη προσέγγιση που αξιοποιεί το Windows Subsystem for Linux (WSL) 2. Το WSL 2 επιτρέπει την εκτέλεση ενός πραγματικού πυρήνα Linux απευθείας στα Windows, προσφέροντας εξαιρετική απόδοση για εργαλεία όπως το Docker.
Η διαδικασία περιλαμβάνει τρία κύρια βήματα:
- Εγκατάσταση του WSL 2: Το υπόβαθρο που απαιτείται για να τρέξει το Docker Desktop αποδοτικά.
- Εγκατάσταση του Docker Desktop: Το εργαλείο που θα διαχειρίζεται τα containers.
- Εκτέλεση του SageMath container: Η λήψη και η εκκίνηση του SageMath.
Βήμα 1: Εγκατάσταση του Windows Subsystem for Linux (WSL)
Η Microsoft έχει απλοποιήσει σημαντικά την εγκατάσταση του WSL.
- Ανοίξτε το PowerShell ως Διαχειριστής:
- Πατήστε το πλήκτρο Windows, πληκτρολογήστε “PowerShell”, κάντε δεξί κλικ στο “Windows PowerShell” και επιλέξτε “Εκτέλεση ως διαχειριστής”.
- Εκτελέστε την εντολή εγκατάστασης:
- Στο παράθυρο του PowerShell, πληκτρολογήστε την παρακάτω εντολή και πατήστε Enter:
wsl --install
- Αυτή η εντολή θα ενεργοποιήσει αυτόματα τις απαραίτητες δυνατότητες των Windows (όπως την “Πλατφόρμα εικονικής μηχανής”), θα κατεβάσει τον πιο πρόσφατο πυρήνα Linux, θα εγκαταστήσει το WSL 2 και θα ορίσει το Ubuntu ως την προεπιλεγμένη διανομή Linux.
- Επανεκκινήστε τον υπολογιστή σας:
- Μετά την ολοκλήρωση της διαδικασίας, θα σας ζητηθεί να επανεκκινήσετε τον υπολογιστή σας.
- Ρύθμιση του Linux (Ubuntu):
- Μετά την επανεκκίνηση, θα ανοίξει αυτόματα ένα παράθυρο τερματικού του Ubuntu. Θα σας ζητηθεί να δημιουργήσετε ένα όνομα χρήστη και έναν κωδικό πρόσβασης. Αυτά τα στοιχεία είναι για το περιβάλλον Linux και δεν χρειάζεται να είναι τα ίδια με τα στοιχεία σύνδεσης των Windows.
Με την ολοκλήρωση αυτού του βήματος, έχετε ένα πλήρες περιβάλλον Linux που τρέχει μέσα στα Windows σας.
Βήμα 2: Εγκατάσταση του Docker Desktop
Το Docker Desktop για Windows θα χρησιμοποιήσει το WSL 2 που μόλις εγκαταστήσατε για να τρέχει τα containers.
- Προαπαιτούμενα:
- Βεβαιωθείτε ότι η εικονικοποίηση (virtualization) είναι ενεργοποιημένη στο BIOS του υπολογιστή σας. Οι περισσότεροι σύγχρονοι υπολογιστές την έχουν ενεργοποιημένη από προεπιλογή.
- Λήψη του Docker Desktop:
- Κατεβάστε το πρόγραμμα εγκατάστασης από την επίσημη ιστοσελίδα του Docker: Docker Desktop for Windows.
- Εκτέλεση του προγράμματος εγκατάστασης:
- Ανοίξτε το αρχείο .exe που κατεβάσατε.
- Κατά τη διάρκεια της εγκατάστασης, βεβαιωθείτε ότι η επιλογή “Use WSL 2 instead of Hyper-V” είναι επιλεγμένη. Ακολουθήστε τις οδηγίες στην οθόνη για να ολοκληρώσετε την εγκατάσταση.
- Επανεκκίνηση (αν απαιτείται):
- Το πρόγραμμα εγκατάστασης μπορεί να ζητήσει επανεκκίνηση των Windows.
- Εκκίνηση και επαλήθευση του Docker:
- Μετά την εγκατάσταση, εκκινήστε το Docker Desktop από το μενού Έναρξη.Ανοίξτε ένα νέο παράθυρο PowerShell (δεν χρειάζεται να είναι ως διαχειριστής αυτή τη φορά) και εκτελέστε την παρακάτω εντολή για να βεβαιωθείτε ότι όλα λειτουργούν σωστά:
docker run hello-world
- Αν η εγκατάσταση είναι επιτυχής, θα δείτε ένα μήνυμα που ξεκινά με “Hello from Docker!”.
Βήμα 3: Εκτέλεση του SageMath Container και Χρήση Volume
Τώρα που το Docker είναι έτοιμο, μπορείτε να κατεβάσετε και να τρέξετε την επίσημη εικόνα (image) του SageMath.
Να κάνω Volume ή όχι;
Ναι, οπωσδήποτε. Ένα volume συνδέει έναν φάκελο από τον υπολογιστή σας (Windows) με έναν φάκελο μέσα στο container. Αυτό είναι κρίσιμο για τους εξής λόγους:
- Μονιμότητα (Persistence): Οτιδήποτε αποθηκεύετε μέσα στο container χάνεται όταν το container διαγραφεί. Χρησιμοποιώντας ένα volume, τα αρχεία σας (π.χ., τα Jupyter notebooks) αποθηκεύονται απευθείας στον σκληρό σας δίσκο στα Windows και παραμένουν εκεί ακόμα και αν σταματήσετε ή διαγράψετε το container.
- Ευκολία πρόσβασης: Μπορείτε να έχετε πρόσβαση και να επεξεργαστείτε τα αρχεία σας με τα συνήθη εργαλεία των Windows (π.χ., Visual Studio Code, Notepad++), καθώς αυτά βρίσκονται στο σύστημα αρχείων σας.
Η τελική εντολή
- Δημιουργήστε έναν φάκελο στα Windows:
- Δημιουργήστε έναν φάκελο όπου θέλετε να αποθηκεύονται τα αρχεία του SageMath. Για παράδειγμα, C:\Users\ΤοΟνομαΣας\Documents\SageMath.
- Εκτελέστε την εντολή στο PowerShell:
- Ανοίξτε το PowerShell και εκτελέστε την παρακάτω εντολή. Αντικαταστήστε το C:\Users\ΤοΟνομαΣας\Documents\SageMath με την πλήρη διαδρομή του φακέλου που δημιουργήσατε.
docker run -p 8888:8888 -v C:\Users\ΤοΟνομαΣας\Documents\SageMath:/home/sage/work -it sagemath/sagemath
Ανάλυση της εντολής:
- docker run: Η βασική εντολή για να δημιουργήσετε και να ξεκινήσετε ένα νέο container.
- -p 8888:8888: Κάνει “mapping” τη θύρα (port) 8888 του container στη θύρα 8888 του υπολογιστή σας. Αυτό σας επιτρέπει να συνδεθείτε στο Jupyter Notebook που τρέχει μέσα στο container.
- -v C:\Users\ΤοΟνομαΣας\Documents\SageMath:/home/sage/work: Αυτό είναι το volume. Συνδέει τον φάκελο C:\… των Windows με τον φάκελο /home/sage/work μέσα στο container.
- -it: Συνδέει το τερματικό σας με το τερματικό του container, επιτρέποντάς σας να αλληλεπιδράτε μαζί του.
- sagemath/sagemath: Το όνομα της επίσημης εικόνας του SageMath που θα χρησιμοποιηθεί.[8] Το Docker θα την κατεβάσει αυτόματα αν δεν υπάρχει ήδη στον υπολογιστή σας.
Τι να περιμένετε μετά την εκτέλεση της εντολής
- Το Docker θα κατεβάσει την εικόνα του SageMath (αυτό μπορεί να διαρκέσει λίγο, ανάλογα με την ταχύτητα της σύνδεσής σας).
- Μόλις ολοκληρωθεί, θα βρεθείτε μέσα στο περιβάλλον γραμμής εντολών του SageMath μέσα στο container.
- Για να ξεκινήσετε το περιβάλλον JupyterLab, πληκτρολογήστε την παρακάτω εντολή μέσα στο τερματικό του container:
sage -n jupyterlab --ip=0.0.0.0
- Το τερματικό θα σας εμφανίσει μία ή περισσότερες διευθύνσεις URL (θα μοιάζουν με http://127.0.0.1:8888/lab?token=…). Αντιγράψτε μία από αυτές τις διευθύνσεις και επικολλήστε την στον browser σας.
- Θα ανοίξει το περιβάλλον του JupyterLab. Στην αριστερή πλευρά, θα δείτε τον φάκελο work, ο οποίος είναι ο φάκελος που συνδέσατε από τα Windows. Οποιοδήποτε αρχείο δημιουργήσετε εδώ, θα αποθηκευτεί απευθείας στον φάκελο C:\Users\ΤοΟνομαΣας\Documents\SageMath.
Για οποιαδήποτε απορία, μπορείτε να μας στείλετε mail στο opensource@uom.edu.gr