Συνεχίζουμε με το τρίτο μέρος της σειράς Self Hosted Cloud Server, στο οποίο θα κάνουμε εγκατάσταση και ρύθμιση την υπηρεσία Docker.
Την σειρά οδηγών Self Hosted Cloud Server γράφει ο φίλος Μητσaker. Θα τα βρείτε όλα στο link : Cosmos Server.
Αν θέλετε και εσείς να συνεισφέρετε μπορείτε να δείτε τους τρόπους : Συνεισφορά στο Cerebrux
Σε αυτή την φάση, υποθέτουμε ότι έχετε τελειώσει την εγκατάσταση και ρύθμιση του Ubuntu Server και όπως είπαμε στο δεύτερο μέρος της σειράς
- θα αποτελείται από έναν δίσκο για το λειτουργικό, (τελειώσαμε με αυτό)
- έναν για τα δεδομένα των containers (/mnt/data),
- έναν για τα αντίγραφα ασφαλείας (/mnt/backup) του ‘/mnt/data’
- και έναν αφαιρούμενο για backup2backup (για να κρατάμε λίγο πιο ήσυχο το κεφάλι μας).
Προσάρτηση των δύο επιπλέον δίσκων
Είμαστε στο Server με SSH από το PC και πάμε να ρυθμίσουμε την σύνδεση των δίσκων με το κυρίως λειτουργικό:
lsblk #εμφανίζει μία λίστα με τους διαθέσιμους δίσκους και τα partitions τους.
sudo mkfs.ext4 /dev/σκληρος-data #για να τον διαμορφώσουμε σε ext4.
sudo mkdir /mnt/data #φτιάχνουμε τη διαδρομή που θα τον προσαρτήσουμε παρακάτω.
sudo mount /dev/σκληρος-data /mnt/data #προσάρτηση του σκληρού στο φάκελο που δημιουργήσαμε.
sudo blkid /dev/σκληρος-data #για να δούμε το UUID του.
sudo nano /etc/fstab #και προσθέτουμε το παρακάτω, αντικαθιστούμε τα ‘x’ με το UUID.
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults 0 2
εκτελούμε την ίδια διαδικασία και για το δεύτερο σκληρό που θα προσαρτήσουμε στη διαδρομή
/mnt/backup
Άνοιγμα των Ports στο Router μας
Θα πρέπει σε αυτή την φάση, να ρυθμίσουμε το router μας να δέχεται τα αιτήματα του domain που ρυθμίσαμε στο πρώτο μέρος οπότε ανοίγουμε τις θύρες 80 & 443 και της κάνουμε Port Forward στην στατική IP του Server μας.
Τσεκάρουμε στο System Info του ρούτερ την IP και την συγκρίνουμε με αυτό που μας δίνει ο έλεγχος δημόσιας IP . Αν είναι διαφορετικό, τότε είμαστε πίσω από CG-NAT και πρέπει να μιλήσουμε στον πάροχο για να μας δώσει public IP.
Εδώ μπορούμε να ελέγξουμε τις θύρες, μόνο όταν ετοιμάσουμε το server και τις χρησιμοποιεί: open ports tool
Εγκατάσταση Docker
Με το Docker έχουμε ασχοληθεί εκτενώς στην σειρά «Μαθήματα Docker« οπότε εδώ θα κάνουμε μια περίληψη της εγκατάστασης του σύμφωνα και με την επίσημη τεκμηρίωση για την εγκατάστασή του σε Ubuntu Server (κάνετε αντιγραφή επικόλληση):
Πρώτα αφαιρούμε παλιότερες εκδόσεις ή αυτές που μπορεί να έρχονται με την διανομή:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done
Στην συνέχεια κάνουμε εγκατάσταση το docker
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Στη συνέχεια κάνουμε εγκατάσταση το docker με τα απαραίτητα πρόσθετα του:
sudo apt install \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
Έπειτα, ρυθμίζουμε την ομάδα και το χρήστη μας να χρησιμοποιεί το docker χωρίς να χρειάζεται δικαιώματα διαχειριστή :
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Τέλος επιβεβαιώνουμε ότι μπορούμε να τρέξουμε docker:
docker run hello-world
Περί των port σε Router, δυστυχώς στην αγορά υπάρχουν μερικά commercial routers (βλέπε Xiaomi Mi-AIoT AX 3200) που δεν ελευθερώνουν την 80 για κανέναν λόγο, οπότε μην περιμένετε με ένα τέτοιο ιδιαίτερο Router να πάρετε SSL key’s διότι το ACME registration στο let’s encrypt για το Cosmos-Server την θέλει προσωρινά ελεύθερη
Εγώ αναγκαστικά πήρα άλλο Router στο σπίτι (Mercusys MR80X, φοβερό) και βρήκα την ηρεμία μου.
Υ.Γ. πωλείται Xiaomi Mi-AIoT AX 3200 😊😁🤣🤣🤣😜😜
Ωωωω πολύ ενδιαφέρον αυτό! Ευτυχώς δεν συμπάθησα ποτέ τέτοια ρουτερ
Περί του Server, μπορείτε να χρησιμοποιήσετε και ένα debian fork με ονομασία DietPi που υπάρχει και για x86 με bios και efi ανάλογα το hw (ακόμα και για vmware/proxmox/virtualbox/κ.α.) όπου έχει το `dietpi-software` και μπορείς να κάνεις εγκατάταση docker/docker-compose/κ.α. πολύ εύκολα.
Είναι stripped down διανομή με τα απολύτως απαραίτητα και δεν προτείνεται για αρχάριους.
Πριν δοκιμάσουμε αν μπορεί να τρέξει το hello-world πρέπει να «γίνει» και η εγκατάσταση docker + compose κλπ..
Μια εντολή που λείπει δηλαδή είναι
«`
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
«`
fixed !