Το συγκεκριμένο project αφορά το εργαστήριο του μαθήματος «(ΨΣ-152) Πληροφοριακά Συστήματα» του τμήματος Ψηφιακών Συστημάτων του Πανεπιστημίου Πειραιώς.
Μπορείτε να βρείτε το κώδικα από τις διαφάνειες του μαθήματος χωρισμένο σε διαφορετικούς φακέλους.
- Εργαστήριο 1 - Εισαγωγή Εισαγωγή στην Υπηρεσιοστρεφή Αρχιτεκτονική και τη Python
- Εισαγωγή με την Υπηρεσιοστρεφή Αρχιτεκτονική (SOA) και τα Web Services
- SOA
- REST & Restful APIs
- Γνωριμία με τη Python 3
- Γενικές έννοιες
- Anaconda distribution
- Git
- GitΗub account
- Δημιουργία νέου repository
- Βασικές εντολές
- Εισαγωγή με την Υπηρεσιοστρεφή Αρχιτεκτονική (SOA) και τα Web Services
- Εργαστήριο 2 - Εισαγωγή στο Docker
- Docker - Βασικές έννοιες
- Πλεονεκτήματα και Μειονεκτήματα
- Εγκατάσταση Docker
- Εκτέλεση εφαρμογών
- Docker containers networking
- Docker Hub
- Εργαστήριο 3 - MongoDB και Flask 1/2
- Εργαστήριο 4 - MongoDB και Flask 2/2
- Εργαστήριο 5 - Containerization
- Extra Εργαστήριο - Scaling στο Docker
Προτείνεται η χρήση της διανομής Anaconda. Παρακάτω μπορείτε να βρείτε και τα link για να κατεβάσετε τη Python:
- Python 3: https://www.python.org/downloads/
- Anaconda: https://www.anaconda.com/distribution/
Για χρήστες Windows: Κατά την εγκατάσταση προτείνεται η επιλογή της εισαγωγής της Anaconda στο system PATH. Εναλλακτικά θα πρέπει να την εισάγεται χειροκίνητα όπως παρακάτω:
- Ανοίγουμε το CMD με δικαιώματα Διαχειριστή
- Βρίσκουμε που έχει εγκατασταθεί η Python με την εντολή:
where python
- Κάνουμε copy το path και εκτελούμε την εντολή:
set PATH=python_path;%PATH%
- Όπου
python_path
είναι το path της εγκατάστασης της Python που βρήκαμε στο βήμα 2
- Όπου
- Τα αρχεία Python πρέπει να έχουν πάντα τη κατάληξη .py:
file_name.py
Ένα Python Virtual Environment είναι εργαλείο που βοηθάει στη διατήρηση των dependencies που απαιτούνται από διαφορετικές εφαρμογές.
virtualenv
- Πρέπει πρώτα να γίνει εγκατάσταση του virtualenv:
pip install virtualenv
- Δημιουργία Virtual Environment:
virtualenv venv_name
- Ενεργοποίηση περιβάλλοντος:
source path/to/venv_name activate
- Απενεργοποίηση περιβάλλοντος:
deactivate
conda environment
- Δημιουργία Conda περιβάλλοντος:
conda create --name conda_env
- Ενεργοποίηση περιβάλλοντος:
conda activate conda_env
- Απενεργοποίηση περιβάλλοντος:
conda deactivate
Πρέπει να έχετε εγκαταστήσει το pip
.
- Mπορείτε να εγκαταστήσετε και να χρησιμοποιήσετε βιβλιοθήκες απλά εκτελώντας την εντολή:
pip install packagename
- Μόνο για χρήστες Anaconda:
conda install packagename
- Σημείωση: Δεν είναι όλα τα packages διαθέσιμα στο conda!
- Αν θέλουμε να κάνουμε εγκατάσταση κάτι μέσω
pip
Anacona Virtual Environment μας πρώτα κάνουμε εγκατάσταση το pip στο environment και μετά κατεβάζουμε τα packages που θέλουμε:conda install pip
pip install packagename
Όταν τις κάνουμε εγκατάσταση σε κάποιο περιβάλλον, μπορούμε να τις εισάγουμε σε κάποιο πρόγραμμά μας έτσι:
import package_name
Αν θέλουμε να κάνουμε εγκατάσταση ένα package σε ένα virtual environment πρέπει πρώτα να το ενεργοποιήσουμε!
- Τα requirement είναι οι βιβλιοθήκες που είναι αναγκαίες για να λειτουργήσει το python project μας.
- Για να τα κάνουμε export σε ένα αρχείο χρησιμοποιούμε την εντολή:
pip freeze > requirements.txt
- Μόνο για χρήστες Anaconda:
conda list --export > requirements.txt
- Για νά κάνουμε εγκατάσταση τα requirement από ένα αρχείο χρησιμοποιούμε την εντολή:
pip install -r requirements.txt
- Μόνο για χρήστες Anaconda:
conda install --file requirements.txt
Hardware:
- 64-bit processor με Second Level Address Translation (SLAT)
- 4GB system RAM
- BIOS-level hardware virtualization support πρέπει να είναι ενεργοποιημένο στις ρυθμίσεις του BIOS (συνήθως είναι ήδη activated)
Εγκατάσταση στα Windows:
- Πρέπει να έχετε Windows 10 Pro, Windows 10 Student edition - Σε Windows Home δεν θα μπορέσει να γίνει εγκατάσταση σωστά
- Πρέπει επίσης να είναι ενεργοποιημένα τα:
- Hyper-V
- Containers Windows Features
- Κατεβάζετε το εκτελέσιμο αρχείο από εδώ: https://hub.docker.com/editions/community/docker-ce-desktop-wind ows
Εγκατάσταση στα Linux (Ubuntu):
- Αρκεί να εκτελέσετε τις παρακάτω εντολές στο terminal:
sudo apt-get update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt install docker-ce
- Προβολή λίστας με όλα τα images που έχουμε τοπικά στον υπολογιστή μας:
docker images
- Εμφάνιση λίστας με όλα τα container που έχουμε στον υπολογιστή μας:
docker ps -a
- Δημιουργία και εκτέλεση container (Αν δεν υπάρχει ήδη τοπικά στον υπολογιστή, θα γίνει και κατέβασμα):
docker run image_name --name friendly_name -p HOST_PORT:DOCKER_PORT
- Εκτέλεση εντολών μέσα σε ένα container:
docker exec friendly_name
- Παύση ενός container:
docker stop friendly_name
- Αφαίρεση ενός σταματημένου container:
docker rm friendly_name
- Διαγραφή ενός image από τον υπολογιστή (αφού πρώτα έχει διαγραφεί το container που το χρησιμοποιεί):
docker rmi image_name
- Εμφάνιση low-level πληροφοριών για ένα container:
docker inspect friendly_name
- Εμφάνιση log για ένα container:
docker log friendly_name
- Build από Dockerfile:
docker build -t image_name .
.
στο τέλος βάζουμε αν το Dockerfile είναι στο ίδιο μέρος με το path που έχουμε στο terminal.- Ενναλακτικά, αντικαθιστούμε το
.
με το path για το Dockerfile
Προσοχή: Το Dockerfile δεν έχει κάποιο extension!
Linux:
- Για να το δημιουργήσουμε πρέπει να εκτελέσουμε τη παρακάτω εντολή στο terminal:
touch Dockerfile
Windows:
- Δημιουργούμε ένα κενό txt αρχείο (πχ στο Notepad) και το αποθηκεύουμε χωρίς extension:
- File / Save as / File name: Dockerfile
- Και επιλέγουμε Save as type: All Files (*.*)
Βασικές εντολές που θα χρησιμοποιήσουμε σε ένα Dockerfile:
- Ποια είναι η base image που χρησιμοποιείται (πρέπει πάντα να υπάρχει σε ένα Dockerfile και το βάζουμε στη πρώτη γραμμή):
FROM ubuntu:16.04
- Όνομα και email του maintainer του image:
MAINTAINER name <[email protected]>
- Αντιγραφή αρχείων από τον host στο container:
COPY filename /dir/to/docker/container
- Προεπιλογές για την εκτέλεση ενός container:
CMD command
- Εκτέλεση εντολών μέσα στο container:
RUN command
- Ποιες port κάνει expose το container:
EXPOSE 80/tcp
- Κάνουμε set τον χρήστη:
USER username
- Τρέχει όταν ξεκινήσει το container:
ENTRYPOINT [“executable”,”param1”,”param2”]
- Χρυσόστομος Συμβουλίδης, [email protected]
- Jean-Didier Totow, [email protected]