# Εκπαιδευτικό σεμινάριο για το Docker για αρχάριους

Στο σεμινάριό μας για το Docker, σας παρουσιάζουμε την πλατφόρμα εικονικοποίησης Docker και σας δείχνουμε πώς να χρησιμοποιήσετε το Docker στο σύστημα Ubuntu 22.04 σας, ακολουθώντας απλές οδηγίες.

## Δομή και χαρακτηριστικά του Docker

«Δημιουργήστε, διανείμετε και εκτελέστε οποιαδήποτε εφαρμογή, οπουδήποτε» – αυτό είναι το σύνθημα της Docker. Η πλατφόρμα κοντέινερ ανοιχτού κώδικα προσφέρει μια ευέλικτη εναλλακτική λύση που απαιτεί ελάχιστους πόρους για την προσομοίωση στοιχείων υλικού με βάση εικονικές μηχανές (VM).

Ενώ **η παραδοσιακή εικονικοποίηση υλικού** βασίζεται στην εκκίνηση πολλαπλών συστημάτων-επισκεπτών σε ένα κοινό σύστημα-κεντρικό, οι εφαρμογές Docker εκτελούνται ως απομονωμένες διεργασίες στο ίδιο σύστημα με τη βοήθεια **κοντέινερ**. Αυτό ονομάζεται εικονικοποίηση βάσει κοντέινερ, γνωστή και ως **εικονικοποίηση σε επίπεδο λειτουργικού συστήματος**.

[![Image: Virtual machines and software containers in comparison](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/f/9/csm_virtual-machines-compared-to-docker-containers_1216df397f.webp "Virtual machines and software containers in comparison")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Schaubilder/virtual-machines-compared-to-docker-containers.png) While each virtual machine launches its own operating system, Docker containers share the core of the host system Ένα σημαντικό πλεονέκτημα της εικονικοποίησης με βάση τα κοντέινερ είναι ότι εφαρμογές με διαφορετικές απαιτήσεις μπορούν να εκτελούνται ανεξάρτητα η μία από την άλλη, χωρίς να απαιτείται ο επιπλέον φόρτος ενός ξεχωριστού συστήματος-επισκέπτη. Επιπλέον, με τα κοντέινερ, οι εφαρμογές μπορούν να αναπτυχθούν **σε διάφορες πλατφόρμες και σε διαφορετικές υποδομές**, χωρίς να χρειάζεται να προσαρμοστούν στις διαμορφώσεις υλικού ή λογισμικού του συστήματος-υποδοχής.

Το Docker είναι το πιο δημοφιλές λογισμικό που παρέχει στους χρήστες **τεχνολογία εικονικοποίησης βασισμένη σε κοντέινερ**. Η πλατφόρμα ανοιχτού κώδικα βασίζεται σε τρία βασικά στοιχεία. Για την εκτέλεση κοντέινερ, οι χρήστες χρειάζονται μόνο τον **κινητήρα Docker** καθώς και ειδικές **εικόνες Docker**, τις οποίες μπορούν να προμηθευτούν μέσω του **Docker Hub** ή να δημιουργήσουν οι ίδιοι.

Tip Τα κοντέινερ και οι εικόνες του Docker είναι ως επί το πλείστον γενικής χρήσης, αλλά μπορούν να προσαρμοστούν σε μεγάλο βαθμό ανάλογα με τις ανάγκες. Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στο άρθρο μας για τα κοντέινερ του Docker.

### Εικόνες Docker

Όπως και οι εικονικές μηχανές, τα κοντέινερ Docker βασίζονται σε εικόνες Docker. Μια εικόνα είναι ένα πρότυπο μόνο για ανάγνωση που περιέχει όλες τις οδηγίες που χρειάζεται ο κινητήρας Docker για να δημιουργήσει ένα κοντέινερ. Μια εικόνα Docker περιγράφεται ως μια **φορητή εικόνα ενός κοντέινερ** με τη μορφή αρχείου κειμένου, που ονομάζεται επίσης Dockerfile. Αν πρόκειται να εκκινηθεί ένα κοντέινερ σε ένα σύστημα, τότε πρώτα φορτώνεται ένα πακέτο με την αντίστοιχη εικόνα, εφόσον αυτή δεν υπάρχει τοπικά. Η εικόνα που φορτώνεται παρέχει το απαραίτητο **σύστημα αρχείων, συμπεριλαμβανομένων όλων των παραμέτρων** για το περιβάλλον εκτέλεσης. Ένα κοντέινερ μπορεί να θεωρηθεί ως μια διαδικασία που εκτελείται από μια εικόνα.

### Το Docker Hub

Το Docker Hub είναι ένα **μητρώο αποθετηρίων λογισμικού που βασίζεται στο** cloud, ένα είδος βιβλιοθήκης για εικόνες Docker. Η διαδικτυακή υπηρεσία χωρίζεται σε δημόσιο και ιδιωτικό τμήμα. Το δημόσιο τμήμα προσφέρει στους χρήστες τη δυνατότητα να ανεβάζουν εικόνες που έχουν αναπτύξει οι ίδιοι και να τις μοιράζονται με την κοινότητα. Εδώ, υπάρχουν πολλές επίσημες εικόνες που διατίθενται από την ομάδα προγραμματιστών του Docker και από καθιερωμένα έργα ανοιχτού κώδικα. Οι εικόνες που ανεβάζονται στον ιδιωτικό τομέα του μητρώου δεν είναι προσβάσιμες στο κοινό και έτσι μπορούν να μοιραστούν, για παράδειγμα, εντός του εσωτερικού κύκλου μιας εταιρείας ή με φίλους ή γνωστούς. Μπορείτε να αποκτήσετε πρόσβαση στο Docker Hub στη [*διεύθυνση hub.docker.com*](https://hub.docker.com/ "Docker Hub website").

### Ο κινητήρας Docker

Στο επίκεντρο του έργου Docker βρίσκεται ο μηχανισμός Docker. Πρόκειται για μια **εφαρμογή πελάτη-διακομιστή ανοιχτού κώδικα**, η οποία διατίθεται σε όλους τους χρήστες στην τρέχουσα έκδοση σε όλες τις καθιερωμένες πλατφόρμες.

Η βασική αρχιτεκτονική του κινητήρα Docker χωρίζεται σε τρία στοιχεία: ένα **δαίμονα** με λειτουργίες διακομιστή, μια **διεπαφή προγραμματισμού (API)** βασισμένη στο πρότυπο προγραμματισμού REST (Representational State Transfer) και το **τερματικό του λειτουργικού συστήματος** (διεπαφή γραμμής εντολών, CLI) ως διεπαφή χρήστη (πελάτης).

- **Δαίμονας Docker**: Ως διακομιστής για τον κινητήρα Docker, χρησιμοποιείται μια διαδικασία δαίμονα. Ο δαίμονας Docker εκτελείται στο παρασκήνιο του συστήματος-ξενιστή και χρησιμοποιείται για τον κεντρικό έλεγχο του κινητήρα Docker. Αυτή η λειτουργία δημιουργεί και διαχειρίζεται όλες τις εικόνες, τα κοντέινερ ή τα δίκτυα.
- **REST-API**: Το REST-API καθορίζει ένα σύνολο διεπαφών που επιτρέπουν σε άλλα προγράμματα να επικοινωνούν με το δαίμονα Docker και να του δίνουν οδηγίες. Ένα από αυτά τα προγράμματα είναι το τερματικό του λειτουργικού συστήματος.
- **Τερματικό**: Ως πρόγραμμα-πελάτης, το Docker χρησιμοποιεί το τερματικό του λειτουργικού συστήματος. Αυτό, ενσωματωμένο με το δαίμονα Docker μέσω του REST-API, επιτρέπει στους χρήστες να το ελέγχουν μέσω σεναρίων ή εισόδου χρήστη.

Tip Το 2017, ο κινητήρας Docker μετονομάστηκε σε *Docker Community Edition* (συντομογραφία: Docker CE), αλλά η επίσημη τεκμηρίωση και τα αποθετήρια του Docker εξακολουθούν ως επί το πλείστον να χρησιμοποιούν την παλιά ονομασία. Εκτός από το Docker CE, υπάρχει επίσης *το Docker Enterprise Edition* (Docker EE), το οποίο διαθέτει ορισμένες λειτουργίες premium. Ωστόσο, δεν είναι δωρεάν και απευθύνεται κυρίως σε επιχειρήσεις.

Με τις εντολές του Docker, τα κοντέινερ λογισμικού των χρηστών μπορούν να εκκινούνται, να τερματίζονται και να διαχειρίζονται απευθείας από το τερματικό. Η επικοινωνία με το δαίμονα πραγματοποιείται μέσω της εντολής `docker` και εντολών όπως `build`, `pull` ή `run`. Ο πελάτης και ο διακομιστής μπορούν να βρίσκονται στο ίδιο σύστημα. Οι χρήστες έχουν επίσης τη δυνατότητα να έχουν πρόσβαση σε ένα δαίμονα Docker σε άλλο σύστημα. Ανάλογα με τον τύπο της σύνδεσης που δημιουργείται, η επικοινωνία μεταξύ του πελάτη και του διακομιστή πραγματοποιείται μέσω του REST-API, μέσω υποδοχών UNIX ή μέσω μιας διεπαφής δικτύου.

Το παρακάτω διάγραμμα απεικονίζει την **αλληλεπίδραση των επιμέρους στοιχείων του Docker** με τις εντολές `docker build`, `docker pull` και `docker run`:

[![Image: Schematic representation of the Docker architecture](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/e/1/csm_docker-architecture-schematic_0cb6890f75.webp "Schematic representation of the Docker architecture")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Schaubilder/docker-architecture-schematic.png) 'The Docker architecture is based on the cooperation of the client (terminal'), διακομιστής (daemon του Docker) και μητρώο (Docker Hub).» Η εντολή `docker build` δίνει εντολή στο δαίμονα του Docker να δημιουργήσει μια εικόνα (διακεκομμένη γραμμή). Για τον σκοπό αυτό, πρέπει να υπάρχει διαθέσιμο ένα αντίστοιχο **αρχείο Dockerfile**. Εάν η εικόνα δεν πρόκειται να δημιουργηθεί, αλλά να φορτωθεί από ένα αποθετήριο στο Docker Hub, τότε χρησιμοποιείται η εντολή `docker pull` (διακεκομμένη γραμμή). Εάν δοθεί εντολή στο δαίμονα Docker μέσω `docker run` να εκκινήσει ένα κοντέινερ, το πρόγραμμα παρασκηνίου ελέγχει εάν η αντίστοιχη εικόνα κοντέινερ είναι διαθέσιμη τοπικά. Εάν είναι, τότε το κοντέινερ εκτελείται (συνεχής γραμμή). Εάν ο δαίμονας δεν μπορεί να βρει την εικόνα, ξεκινά αυτόματα μια λήψη από το αποθετήριο.

## Εργασία με το Docker

Τώρα ήρθε η ώρα να εξοικειωθείτε με **τις εφαρμογές της πλατφόρμας κοντέινερ**. Αν δεν έχετε εγκαταστήσει ακόμα τον κινητήρα Docker, μπορείτε να το κάνετε μέσω του τερματικού του Linux. Μπορείτε να βρείτε οδηγίες για το πώς να το κάνετε αυτό στο άρθρο μας με τίτλο«Εγκατάσταση του Docker στο Ubuntu 22.04». Μάθετε παρακάτω πώς να χειρίζεστε τον κινητήρα Docker από το τερματικό, τι μπορεί να σας προσφέρει το Docker Hub και γιατί τα κοντέινερ Docker μπορούν να φέρουν επανάσταση στον τρόπο με τον οποίο εργάζεστε με τις εφαρμογές.

Tip Αν θέλετε να εγκαταστήσετε το Docker σε άλλη διανομή Linux ή στα Windows, οι παρακάτω οδηγίες θα σας βοηθήσουν:

- Εγκατάσταση του Docker στο Debian 11
- Εγκατάσταση του Docker στο Ubuntu 20.04
- Εγκατάσταση του Docker στο CentOS 7
- Εγκατάσταση του Docker σε Windows 10
- Εγκατάσταση του Docker σε Windows 11
- Εγκατάσταση του Docker στο Raspberry Pi

### Πώς να διαχειριστείτε τον κινητήρα Docker

Από την έκδοση 16.04, το Ubuntu χρησιμοποιεί το **πρόγραμμα παρασκηνίου *systemd***(συντομογραφία του «system daemon») για τη διαχείριση των διεργασιών.*Το systemd είναι*μια διεργασία εκκίνησης (init), η οποία χρησιμοποιείται και σε άλλες διανομές Linux, όπως το RHEL, το CentOS ή το Fedora. Συνήθως,*το systemd λαμβάνει*τον αριθμό διεργασίας 1. Ως πρώτη διεργασία του συστήματος, ο δαίμονας είναι υπεύθυνος για την εκκίνηση, την παρακολούθηση και τον τερματισμό όλων των επόμενων διεργασιών. Στις προηγούμενες εκδόσεις του Ubuntu (14.10 και παλαιότερες), το*πρόγραμμα *παρασκηνίου* upstart* αναλαμβάνει αυτή τη λειτουργία.

Το δαίμονα του Docker μπορεί επίσης να ελέγχεται μέσω *του systemd*. Στην τυπική εγκατάσταση, η πλατφόρμα κοντέινερ έχει ρυθμιστεί έτσι ώστε το δαίμονα να ξεκινά αυτόματα κατά την εκκίνηση του συστήματος. Αυτή η προεπιλεγμένη ρύθμιση μπορεί να προσαρμοστεί μέσω του εργαλείου γραμμής εντολών **systemctl**.

Με *το systemctl*, στέλνετε εντολές στο *systemd* για να ελέγξετε μια διεργασία ή να ζητήσετε πληροφορίες για την κατάστασή της. Η σύνταξη μιας τέτοιας εντολής έχει ως εξής:

```bash
systemctl [OPTION] [COMMAND]
```

Ορισμένες εντολές αναφέρονται σε συγκεκριμένους πόρους (για παράδειγμα, το Docker). Στην ορολογία του *systemd*, αυτοί ονομάζονται «μονάδες». Σε αυτή την περίπτωση, η εντολή αποτελείται από την αντίστοιχη οδηγία και το όνομα της μονάδας στην οποία απευθύνεται.

Αν θέλετε να ενεργοποιήσετε την **αυτόματη εκκίνηση του δαίμονα Docker** (*ενεργοποίηση*) ή να την απενεργοποιήσετε (*απενεργοποίηση*), χρησιμοποιήστε το εργαλείο γραμμής εντολών *systemctl* με τις ακόλουθες εντολές:

```bash
sudo systemctl enable docker
sudo systemctl disable docker
```

Το εργαλείο γραμμής εντολών *systemctl* σας επιτρέπει να ελέγξετε την **κατάσταση μιας μονάδας**:

```bash
sudo systemctl status docker
```

Εάν ο μηχανισμός Docker στο σύστημα Ubuntu σας είναι ενεργός, τότε η έξοδος στο τερματικό θα πρέπει να μοιάζει με την παρακάτω οθόνη:

[![Image: The status query via systemctl shows: The Docker engine is active (running)](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/f/7/csm_docker-status-active-running_f52601bd11.webp "The status query via systemctl shows: The Docker engine is active (running)")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-status-active-running.png) Status query via systemctl: The Docker Engine is active (running) Εάν ο κινητήρας Docker είναι απενεργοποιημένος αυτή τη στιγμή, θα λάβετε την ένδειξη κατάστασης *«inactive (dead)*». Σε αυτή την περίπτωση, πρέπει να εκκινήσετε χειροκίνητα το δαίμονα Docker για να εκτελέσετε κοντέινερ.

[![Image: The status query via systemctl shows: The Docker engine is inactive (dead)](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/d/a/csm_docker-status-inactive_cad5668ee9.webp "The status query via systemctl shows: The Docker engine is inactive (dead)")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-status-inactive.png) Status query via systemctl: The Docker engine is inactive (dead) Αν θέλετε να **ξεκινήσετε, να σταματήσετε ή** να **επανεκκινήσετε χειροκίνητα τον κινητήρα Docker**, εκτελέστε μία από τις παρακάτω εντολές *στο systemd*.

Για να **ξεκινήσετε το απενεργοποιημένο δαίμονα**, χρησιμοποιήστε *το systemctl* σε συνδυασμό με την εντολή `start`:

```bash
sudo systemctl start docker
```

Αν **θέλετε να τερματίσετε** το **δαίμονα του Docker**, χρησιμοποιήστε την εντολή `stop`:

```bash
sudo systemctl stop docker
```

Η εντολή `restart` ζητά την **επανεκκίνηση του κινητήρα**:

```bash
sudo systemctl restart docker
```

### Πώς να χρησιμοποιήσετε το Docker Hub

Αν ο κινητήρας Docker αποτελεί την καρδιά της πλατφόρμας κοντέινερ, τότε το Docker Hub είναι η ψυχή του έργου ανοιχτού κώδικα. Εδώ συναντάται η κοινότητα. Σε αυτό **το μητρώο που βασίζεται στο cloud**, οι χρήστες μπορούν να βρουν όλα όσα χρειάζονται για να δώσουν ζωή στην εγκατάστασή τους του Docker.

Η διαδικτυακή υπηρεσία προσφέρει **διάφορα επίσημα αποθετήρια με περισσότερες από 100.000 δωρεάν εφαρμογές**. Οι χρήστες έχουν τη δυνατότητα να δημιουργήσουν ένα αρχείο εικόνων και να το χρησιμοποιούν από κοινού με ομάδες εργασίας. Εκτός από την επαγγελματική υποστήριξη που παρέχει η ομάδα ανάπτυξης, οι αρχάριοι μπορούν να βρουν εδώ τρόπους επικοινωνίας με την κοινότητα των χρηστών. Στο [**GitHub**](https://github.com/docker/hub-feedback/issues "Docker’s GitHub website") υπάρχει ένα φόρουμ για την υποστήριξη της κοινότητας.

[![Image: The Docker hub: Registration](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/a/0/csm_docker-hub-login-page_d232488fe7.webp "The Docker hub: Registration")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-login-page.png) Create your personal Docker ID for free by registering / Source: hub.docker.com #### Εγγραφή στο Docker Hub

**Η εγγραφή στο Docker Hub είναι δωρεάν**. Οι χρήστες χρειάζονται μόνο μια διεύθυνση email και το Docker ID που έχουν επιλέξει. Αυτό χρησιμεύει αργότερα ως προσωπικός **χώρος αποθήκευσης** και παρέχει στους χρήστες πρόσβαση σε όλες τις υπηρεσίες του Docker. Προς το παρόν, αυτή η προσφορά περιλαμβάνει το Docker Cloud, το Docker Store και επιλεγμένα προγράμματα beta, εκτός από το Docker Hub. Επιτρέπει επίσης τη χρήση του **Docker ID** ως στοιχείων σύνδεσης για το κέντρο υποστήριξης του Docker, καθώς και για το Docker Success Portal και [το φόρουμ του Docker](https://www.docker.com/community/ "Docker Community forum").

Η διαδικασία εγγραφής αποτελείται από πέντε βήματα:

1. **Επιλέξτε το Docker ID σας**: Ως πρώτο βήμα της διαδικασίας εγγραφής, επιλέξτε ένα όνομα χρήστη που θα χρησιμοποιηθεί αργότερα ως το προσωπικό σας Docker ID.
2. **Εισαγάγετε μια διεύθυνση email**: Εισαγάγετε την τρέχουσα διεύθυνση email σας. Σημειώστε ότι θα πρέπει να επιβεβαιώσετε την εγγραφή σας στο Docker Hub μέσω email.
3. **Επιλέξτε έναν κωδικό πρόσβασης**: Επιλέξτε έναν μυστικό κωδικό πρόσβασης.
4. **Υποβάλετε την εγγραφή σας**: Κάντε κλικ στο «Εγγραφή» για να υποβάλετε την εγγραφή σας. Μόλις μεταδοθούν πλήρως τα δεδομένα, το Docker θα στείλει έναν σύνδεσμο για να επαληθεύσετε τη διεύθυνση email σας στο συγκεκριμένο φάκελο εισερχομένων που έχετε καθορίσει.
5. **Επιβεβαιώστε τη διεύθυνση email σας**: Επιβεβαιώστε τη διεύθυνση email σας κάνοντας κλικ στον σύνδεσμο επαλήθευσης.

Οι διαδικτυακές υπηρεσίες του έργου Docker είναι άμεσα διαθέσιμες μετά την εγγραφή σας στον περιηγητή. Εδώ μπορείτε να δημιουργήσετε αποθετήρια και ομάδες εργασίας ή να αναζητήσετε δημόσιους πόρους στο Docker Hub χρησιμοποιώντας την επιλογή «Εξερεύνηση».

[![Image: Dashboard of the Docker hub](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/f/a/csm_docker-hub-dashboard_1d08a8d15d.webp "Dashboard of the Docker hub")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-dashboard.png) Select and set repositories and workgroups via the Docker hub dashboard / Source: hub.docker.com Μπορείτε επίσης να συνδεθείτε απευθείας από το τερματικό του λειτουργικού σας συστήματος χρησιμοποιώντας *την εντολή docker login*. Μια αναλυτική περιγραφή της εντολής μπορείτε να βρείτε στην [τεκμηρίωση του Docker](https://docs.docker.com/engine/reference/commandline/login/ "Docker documentation").

Κατ’ αρχήν, το Docker Hub είναι διαθέσιμο και σε όσους **δεν διαθέτουν λογαριασμό ή Docker ID**. Σε αυτή την περίπτωση, όμως, είναι δυνατή μόνο η φόρτωση εικόνων από δημόσια αποθετήρια. Η μεταφόρτωση (*push*) των δικών σας εικόνων δεν είναι δυνατή χωρίς Docker ID.

#### Δημιουργία αποθετηρίων στο Docker Hub

Ο **δωρεάν λογαριασμός στο Docker Hub** περιλαμβάνει ένα ιδιωτικό αποθετήριο και προσφέρει τη δυνατότητα δημιουργίας απεριόριστου αριθμού δημόσιων αποθετηρίων. Εάν χρειαστείτε περισσότερα ιδιωτικά αποθετήρια, μπορείτε να τα αποκτήσετε με μια **αναβάθμιση επί πληρωμή**.

Για να δημιουργήσετε ένα αποθετήριο, ακολουθήστε τα παρακάτω βήματα:

1. **Επιλέξτε ένα χώρο ονομάτων**: Τα αποθετήρια που δημιουργούνται πρόσφατα αντιστοιχίζονται αυτόματα στον χώρο ονομάτων του Docker ID σας. Έχετε επίσης τη δυνατότητα να εισαγάγετε το αναγνωριστικό ενός οργανισμού στον οποίο ανήκετε.
2. **Ονομάστε το αποθετήριο**: Εισαγάγετε ένα όνομα για το νεοδημιουργημένο αποθετήριο.
3. **Προσθέστε μια περιγραφή**: Προσθέστε μια σύντομη περιγραφή για το αποθετήριό σας.
4. **Ορίστε την ορατότητα**: Αποφασίστε αν το αποθετήριο θα είναι ορατό στο κοινό (*δημόσιο*) ή αν θα είναι προσβάσιμο μόνο από εσάς ή τον οργανισμό σας (*ιδιωτικό*).

Επιβεβαιώστε τις καταχωρίσεις σας κάνοντας κλικ στο «Δημιουργία».

[![Image: The Docker hub: Input screen for creating a repository](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/a/d/csm_docker-hub-repository-creation_ac7984ce9d.webp "The Docker hub: Input screen for creating a repository")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-repository-creation.png) Your repositories are automatically created in the namespace of your Docker ID / Source: hub.docker.com #### Δημιουργία ομάδων και οργανισμών

Μέσω του hub, το Docker παρέχει μια πλατφόρμα βασισμένη στο cloud, στην οποία **οι εικόνες που δημιουργούνται από τους χρήστες διαχειρίζονται κεντρικά** και **μοιράζονται** εύκολα **με ομάδες εργασίας**. Στην ορολογία του Docker, αυτές ονομάζονται «οργανισμοί». Ακριβώς όπως και οι λογαριασμοί χρηστών, οι οργανισμοί λαμβάνουν μοναδικά αναγνωριστικά, μέσω των οποίων μπορούν να παρέχονται και να κατεβαίνουν εικόνες. Τα δικαιώματα και οι ρόλοι εντός ενός οργανισμού μπορούν να εκχωρηθούν μέσω ομάδων. Για παράδειγμα, οι χρήστες που έχουν ενταχθεί στην ομάδα «Ιδιοκτήτες» έχουν την εξουσία να δημιουργούν ιδιωτικά ή δημόσια αποθετήρια και να εκχωρούν δικαιώματα πρόσβασης.

Οι ομάδες εργασίας μπορούν επίσης να δημιουργηθούν και να διαχειριστούν απευθείας μέσω του πίνακα ελέγχου. Περισσότερες πληροφορίες σχετικά με τους οργανισμούς και τις ομάδες μπορείτε να βρείτε στην [τεκμηρίωση του Docker](https://docs.docker.com/docker-hub/orgs/ "Workgroups - Docker documentation").

### Εργασία με εικόνες και κοντέινερ

Ως το πρώτο σημείο επαφής για τους επίσημους πόρους του Docker, το Docker Hub αποτελεί το σημείο εκκίνησης για αυτή **την εισαγωγή στη διαχείριση εικόνων και κοντέινερ**. Η ομάδα προγραμματιστών έχει διαθέσει την εικόνα επίδειξης *«whalesay»*, η οποία θα χρησιμεύσει ως βάση για το παρακάτω σεμινάριο Docker.

#### Λήψη εικόνων Docker

Μπορείτε να βρείτε την εικόνα *«whalesay»* αν επισκεφθείτε τον ιστότοπο του Docker Hub και πληκτρολογήσετε τον όρο *«whalesay»* στη γραμμή αναζήτησης δίπλα στο λογότυπο του Docker.

[![Image: The search function in Docker hub](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/c/c/csm_docker-hub-whalesay-repos_eae5c60dab.webp "The search function in Docker hub")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-whalesay-repos.png) Search the Docker hub using the search bar or the ‘Explore’ button / Source: hub.docker.com Στα αποτελέσματα αναζήτησης, κάντε κλικ στον πόρο με τον τίτλο *docker/whalesay* για να αποκτήσετε πρόσβαση στο δημόσιο αποθετήριο αυτής της εικόνας.

Τα αποθετήρια Docker είναι πάντα δομημένα με τον ίδιο τρόπο. Στην κεφαλίδα της σελίδας, οι χρήστες βλέπουν τον τίτλο της εικόνας, την κατηγορία του αποθετηρίου και την ώρα της τελευταίας μεταφόρτωσης (*last pushed*).

[![Image: Web view of a Docker repository](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/3/e/csm_docker-hub-official-whalesay-repo_2355257104.webp "Web view of a Docker repository")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-official-whalesay-repo.png) In the repository, users generally find all information that is needed to use an image / Source: hub.docker.com Κάθε αποθετήριο Docker διαθέτει επίσης τα ακόλουθα πλαίσια πληροφοριών:

1. **Περιγραφή**: Λεπτομερής περιγραφή, η οποία συνήθως περιλαμβάνει οδηγίες χρήσης
2. **Εντολή Docker pull**: Εντολή γραμμής εντολών που χρησιμοποιείται για τη λήψη της εικόνας από το αποθετήριο (`pull`)
3. **Ιδιοκτήτης**: Πληροφορίες σχετικά με τον δημιουργό του αποθετηρίου
4. **Σχόλια**: Ενότητα σχολίων στο τέλος της σελίδας

Τα πλαίσια πληροφοριών του αποθετηρίου δείχνουν ότι *το whalesay* είναι μια τροποποίηση του ανοιχτού κώδικα Perl ***cowsay***. Το πρόγραμμα, που αναπτύχθηκε από τον Tony Monroe το 1999, δημιουργεί ένα γραφικό ASCII με τη μορφή αγελάδας, το οποίο εμφανίζεται μαζί με ένα μήνυμα στο τερματικό του χρήστη.

Για να κατεβάσετε *το docker/whalesay*, χρησιμοποιήστε την εντολή `docker pull`:

```bash
docker pull [OPTIONS] NAME [:TAG|@DIGEST]
```

Η εντολή `docker pull` δίνει εντολή στο δαίμονα να φορτώσει μια εικόνα από το αποθετήριο. Καθορίζετε ποια εικόνα είναι αυτή εισάγοντας τον τίτλο της εικόνας (*NAME*). Μπορείτε επίσης να καθορίσετε στο Docker τον τρόπο με τον οποίο πρέπει να εκτελεστεί η επιθυμητή εντολή (*OPTIONS*). Οι προαιρετικές παραμέτρους περιλαμβάνουν **ετικέτες** (*:TAG*) και ατομικούς **αριθμούς αναγνώρισης** (*@DIGEST*), οι οποίοι σας επιτρέπουν να κατεβάσετε μια συγκεκριμένη έκδοση μιας εικόνας.

Μπορείτε να δημιουργήσετε ένα τοπικό αντίγραφο της εικόνας *docker/whalesay* με την ακόλουθη εντολή:

```bash
docker pull docker/whalesay
```

Γενικά, μπορείτε να παραλείψετε αυτό το βήμα. Αν θέλετε να εκκινήσετε ένα κοντέινερ, το δαίμονα του Docker κατεβάζει αυτόματα τις εικόνες από το αποθετήριο που δεν μπορεί να βρει στο τοπικό σύστημα.

#### Εκκίνηση εικόνων Docker ως κοντέινερ

Για να εκκινήσετε μια εικόνα Docker, χρησιμοποιήστε την εντολή `docker run`:

```bash
docker run [OPTIONS] IMAGE [:TAG|@DIGEST] [CMD] [ARG...]
```

Το μόνο υποχρεωτικό στοιχείο της εντολής `docker run` είναι το όνομα της επιθυμητής εικόνας Docker. Ωστόσο, όταν εκκινείτε ένα κοντέινερ, έχετε επίσης τη δυνατότητα να ορίσετε επιπλέον επιλογές, ετικέτες (TAGs) και DIGESTs. Επιπλέον, η εντολή `docker run` μπορεί να συνδυαστεί με άλλες εντολές που εκτελούνται αμέσως μόλις ξεκινήσει το κοντέινερ. Σε αυτή την περίπτωση, το **CMD** (COMMAND, που ορίζεται από τον δημιουργό της εικόνας και εκτελείται αυτόματα κατά την εκκίνηση του κοντέινερ) αντικαθίσταται. Άλλες προαιρετικές ρυθμίσεις μπορούν να οριστούν μέσω **πρόσθετων παραμέτρων** (*ARG…*). Αυτό καθιστά δυνατή, για παράδειγμα, την προσθήκη χρηστών ή τη μεταφορά μεταβλητών περιβάλλοντος.

Χρησιμοποιήστε την εντολή της γραμμής εντολών

```bash
docker run docker/whalesay cowsay boo
```

για να κατεβάσετε το υπάρχον σενάριο Perl ως εικόνα και να το εκτελέσετε σε ένα κοντέινερ. Θα διαπιστώσετε ότι *το whalesay* διαφέρει σημαντικά από το αρχικό σενάριο.

[![Image: Terminal output of the container docker/whalesay: The whale says ‘boo’](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/e/4/csm_docker-run-whalesay-boo-english_82f28f20b7.webp "Terminal output of the container docker/whalesay: The whale says ‘boo’")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-run-whalesay-boo-english.png) If docker/whalesay is run with the standard command, the Docker whale is limited to a short ‘boo’ Εάν εκτελεστεί η εικόνα *docker/whalesay*, το σενάριο εμφανίζει ένα γραφικό ASCII με τη μορφή φάλαινας, καθώς και το μήνυμα κειμένου «boo», το οποίο έχει δοθεί με την εντολή *cowsay* στο τερματικό.

Όπως και στην δοκιμαστική εκτέλεση, το δαίμονα αναζητά πρώτα την επιθυμητή εικόνα στον τοπικό κατάλογο αρχείων. Επειδή δεν υπάρχει πακέτο με το ίδιο όνομα, ξεκινά η λήψη από το αποθετήριο του Docker. Στη συνέχεια, το δαίμονα εκκινεί το τροποποιημένο πρόγραμμα *cowsay*. Εάν η διαδικασία ολοκληρωθεί, το **κοντέινερ τερματίζεται αυτόματα**.

Όπως και *το cowsay*, *το whalesay* του Docker προσφέρει επίσης τη δυνατότητα να παρεμβαίνεις στη ροή του προγράμματος για να επηρεάσεις το κείμενο που εμφανίζεται στο τερματικό. Δοκίμασε αυτή τη λειτουργία αντικαθιστώντας το «boo» στην εντολή εξόδου με οποιαδήποτε συμβολοσειρά ή, για παράδειγμα, με ένα αστείο για φάλαινες.

```bash
sudo docker run docker/whalesay cowsay What did the shark say to the whale? What are you blubbering about?
```

[![Image: Terminal output of the container docker/whalesay: A whale with an individual message](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/8/6/csm_docker-run-whalesay-joke_6337d3f36a.webp "Terminal output of the container docker/whalesay: A whale with an individual message")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-run-whalesay-joke.png) Make your Docker whale say whatever you want by placing words in his speech bubble #### Εμφάνιση όλων των εικόνων Docker στο τοπικό σύστημα

Αν δεν είστε σίγουροι αν έχετε ήδη κατεβάσει μια συγκεκριμένη εικόνα, μπορείτε να δείτε μια **συνολική εικόνα όλων των εικόνων που υπάρχουν στον τοπικό σας υπολογιστή**. Χρησιμοποιήστε την ακόλουθη εντολή γραμμής εντολών:

```bash
sudo docker image
```

Η εντολή `docker images` (εναλλακτικά `docker image ls`) εμφανίζει όλες τις τοπικές εικόνες, συμπεριλαμβανομένου του μεγέθους του αρχείου, της ετικέτας και του αναγνωριστικού της εικόνας.

[![Image: Overview of all images on the local system](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/3/9/csm_sudo-docker-images-empty_9806635619.webp "Overview of all images on the local system")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-images-empty.png) The overview displays the images hello-world and docker/whalesay Όταν εκκινείτε ένα κοντέινερ, η αντίστοιχη εικόνα κατεβαίνει ως αντίγραφο από το αποθετήριο και αποθηκεύεται μόνιμα στον υπολογιστή σας. Αυτό σας εξοικονομεί χρόνο αν θελήσετε να χρησιμοποιήσετε την εικόνα αργότερα. Νέα λήψη ξεκινά μόνο αν αλλάξει η πηγή της εικόνας, για παράδειγμα αν μια νεότερη έκδοση είναι διαθέσιμη στο αποθετήριο.

#### Εμφάνιση όλων των κοντέινερ στο τοπικό σύστημα

Αν θέλετε να εμφανίσετε μια **συνοπτική παρουσίαση όλων των κοντέινερ** που εκτελούνται στο σύστημά σας ή έχουν εκτελεστεί στο παρελθόν, χρησιμοποιήστε την εντολή `docker ps` σε συνδυασμό με την επιλογή `--all` (συντομογραφία: `-a`):

```bash
sudo docker ps -a
```

[![Image: Overview of all containers on the local system](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/5/a/csm_sudo-docker-ps-a-english_74f680383e.webp "Overview of all containers on the local system")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-ps-a-english.png) The overview shows all containers that have been launched on the Docker engine Η έξοδος του τερματικού περιλαμβάνει πληροφορίες όπως **το αναγνωριστικό του** εκάστοτε **κοντέινερ**, την υποκείμενη **εικόνα**, την **εντολή** που εκτελέστηκε κατά την εκκίνηση του κοντέινερ, την **ώρα** εκκίνησης του κοντέινερ και την **κατάστασή του**.

Αν θέλετε να εμφανίσετε μόνο τα κοντέινερ που εκτελούνται αυτή τη στιγμή στο σύστημά σας, χρησιμοποιήστε την εντολή `docker ps` χωρίς άλλες επιλογές:

```bash
sudo docker ps
```

Προς το παρόν, όμως, δεν θα πρέπει να υπάρχουν ενεργά κοντέινερ στο σύστημά σας.

#### Δημιουργία εικόνων Docker

Όχι ότι το σεμινάριό μας για το Docker δεν σας έχει δείξει πώς να βρίσκετε εικόνες στο Docker Hub, να τις κατεβάζετε και να τις εκτελείτε σε οποιοδήποτε σύστημα στο οποίο είναι εγκατεστημένος ο κινητήρας Docker. Ωστόσο, με το Docker, δεν θα έχετε μόνο πρόσβαση στο ευρύ φάσμα εφαρμογών που διατίθενται στο μητρώο. Η πλατφόρμα προσφέρει επίσης μια μεγάλη ποικιλία επιλογών για **τη δημιουργία δικών σας εικόνων** και την κοινή χρήση τους με άλλους προγραμματιστές.

Στα εισαγωγικά κεφάλαια αυτού του σεμιναρίου για το Docker, μάθατε ήδη ότι κάθε εικόνα Docker βασίζεται σε ένα **αρχείο Dockerfile**. Μπορείτε να φανταστείτε τα αρχεία Dockerfile ως ένα είδος **προτύπου δημιουργίας για τις εικόνες**. Πρόκειται για απλά αρχεία κειμένου που περιέχουν όλες τις οδηγίες που χρειάζεται το Docker για να δημιουργήσει μια εικόνα. Στα επόμενα βήματα, θα μάθετε πώς να συντάσσετε αυτό το είδος αρχείου Dockerfile και να δίνετε εντολή στο Docker να το χρησιμοποιήσει ως βάση για τη δική σας εικόνα.

1. **Δημιουργία νέου φακέλου**: Η ομάδα προγραμματιστών του Docker συνιστά τη δημιουργία ενός νέου φακέλου για κάθε Dockerfile. Στο Linux, οι φάκελοι δημιουργούνται εύκολα από το τερματικό. Χρησιμοποιήστε την ακόλουθη εντολή για να δημιουργήσετε έναν φάκελο με το όνομα *mydockerbuild*:

```bash
mkdir mydockerbuild
```

[![Image: Ubuntu terminal: The command mkdir](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/4/8/csm_mkdir-mydockerbuild-english_b8f27a8820.webp "Ubuntu terminal: The command mkdir")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/mkdir-mydockerbuild-english.png) Create new directories with the command mkdir 2. **Πλοηγηθείτε στον νέο κατάλογο**: Χρησιμοποιήστε την εντολή `cd` για να πλοηγηθείτε στον κατάλογο εργασίας που μόλις δημιουργήσατε.

```bash
cd mydockerbuild
```

[![Image: Ubuntu terminal: The command cd](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/6/d/csm_cd-mydockerbuild-english_93ecadd291.webp "Ubuntu terminal: The command cd")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/cd-mydockerbuild-english.png) With the help of the cd command, switch to another working directory 3. **Δημιουργία νέου αρχείου κειμένου**: Μπορείτε επίσης να δημιουργήσετε εύκολα αρχεία κειμένου μέσω του τερματικού στο Ubuntu. Για να το κάνετε αυτό, χρησιμοποιήστε έναν επεξεργαστή κειμένου όπως το Nano ή το Vim. Δημιουργήστε ένα αρχείο κειμένου με το όνομα *Dockerfile* στον κατάλογο *mydockerbuild*.

```bash
nano Dockerfile
```

[![Image: Ubuntu terminal: Create text files with Nano](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/2/4/csm_nano-dockerfile-empty_b2b1b6195b.webp "Ubuntu terminal: Create text files with Nano")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/nano-dockerfile-empty.png) The text editor Nano is preinstalled on all Ubuntu versions 4. **Δημιουργία του αρχείου Dockerfile**: Το αρχείο κειμένου που μόλις δημιουργήσατε λειτουργεί ως σχέδιο κατασκευής για την εικόνα που αναπτύσσετε μόνοι σας. Αντί να προγραμματίσουμε την εικόνα από το μηδέν, σε αυτό το σεμινάριο για το Docker θα χρησιμοποιήσουμε την εικόνα επίδειξης *docker/whalesay* ως πρότυπο. Η ενσωμάτωσή της γίνεται με την εντολή *FROM* στο αρχείο Dockerfile σας. Χρησιμοποιήστε την ετικέτα *:latest* για να αναφερθείτε στην πιο πρόσφατη έκδοση της εικόνας.

```none
FROM docker/whalesay:latest
```

Μέχρι στιγμής, *το docker/whalesay* λειτουργεί με τον τρόπο που εσύ του δίνεις τα λόγια. Στο τερματικό, εμφανίζεται ακριβώς το κείμενο που πληκτρολόγησες, σε συνδυασμό με την εντολή εκκίνησης του κοντέινερ. Ωστόσο, θα ήταν πιο ενδιαφέρον αν το σενάριο δημιουργούσε **αυτόματα** νέο κείμενο εξόδου. Αυτό μπορεί να γίνει, για παράδειγμα, χρησιμοποιώντας το πρόγραμμα *fortunes* που είναι διαθέσιμο σε κάθε σύστημα Linux. Η βασική λειτουργία του *fortunes* είναι να δημιουργεί ρήσεις από μπισκότα τύχης και χιουμοριστικούς αφορισμούς. Χρησιμοποιήστε την ακόλουθη εντολή για να ενημερώσετε τον τρέχοντα τοπικό κατάλογο πακέτων και να εγκαταστήσετε *το fortunes*:

```none
RUN apt-get -y update && apt-get install -y fortunes
```

Στη συνέχεια, ορίστε μια εντολή *CMD*. Αυτή εκτελείται μετά την εντολή *RUN*, εκτός αν έχει αντικατασταθεί από την εντολή call (`docker run image CMD`). Χρησιμοποιήστε την ακόλουθη εντολή για να εκτελέσετε το πρόγραμμα *fortunes* με την επιλογή `-a` («Επιλογή από όλες τις βάσεις δεδομένων») και να εμφανίσετε το αποτέλεσμα μέσω του προγράμματος *cowsay* στο τερματικό:

```none
CMD /usr/games/fortune -a | cowsay
```

Το αρχείο Dockerfile σας θα πρέπει να έχει την ακόλουθη μορφή:

```none
FROM docker/whalesay:latest
RUN apt-get -y update && apt-get install -y fortunes
CMD /usr/games/fortune -a | cowsay
```

Σημείωση: **Οι εντολές** σε ένα αρχείο Dockerfile γράφονται **πάντα με μονή διαστήματα** και ξεκινούν πάντα με μια λέξη-κλειδί. Η σύνταξη δεν διακρίνει μεταξύ κεφαλαίων και μικρών γραμμάτων, οπότε δεν έχει σημασία αν γράφετε με κεφαλαία ή μικρά γράμματα. Ωστόσο, έχει καθιερωθεί μια σταθερή χρήση κεφαλαίων για τις λέξεις-κλειδιά.

[![Image: The text editor Nano in the Ubuntu terminal](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/b/b/csm_nano-dockerfile-full_bd1796f06d.webp "The text editor Nano in the Ubuntu terminal")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/nano-dockerfile-full.png) Control the text editor Nano via the key combinations given in the footer 1. **Αποθήκευση αρχείου κειμένου**: Αποθηκεύστε την καταχώρισή σας. Εάν χρησιμοποιείτε τον επεξεργαστή Nano, αποθηκεύστε με το συνδυασμό πλήκτρων \[CTRL\] + \[O\] και επιβεβαιώστε με το \[ENTER\]. Το Nano θα εμφανίσει ένα μήνυμα ότι έχουν γραφτεί τρεις γραμμές στο επιλεγμένο αρχείο. Κλείστε τον επεξεργαστή κειμένου με το συνδυασμό πλήκτρων \[CTRL\] + \[X\].
2. **Δημιουργία εικόνας ως Dockerfile**: Για να δημιουργήσετε μια εικόνα από ένα Dockerfile, μεταβείτε πρώτα στον κατάλογο όπου βρίσκεται το αρχείο κειμένου. Ξεκινήστε τη δημιουργία της εικόνας με την εντολή `docker build`. Εάν θέλετε να ονομάσετε ξεχωριστά την εικόνα ή να της δώσετε μια ετικέτα, χρησιμοποιήστε την επιλογή `-t` ακολουθούμενη από τον επιθυμητό συνδυασμό ετικέτας και ονόματος. Η τυπική μορφή είναι `name:tag`.

Στο παρόν παράδειγμα, θα πρέπει να δημιουργηθεί μια εικόνα με το όνομα *docker-whale*:

```bash
docker build -t docker-whale .
```

Η τελευταία **περίοδος** υποδηλώνει ότι το σχετικό αρχείο Dockerfile βρίσκεται στον επιλεγμένο κατάλογο. Έχετε επίσης τη δυνατότητα να καθορίσετε μια διαδρομή αρχείου ή μια διεύθυνση URL για τα αρχεία προέλευσης.

Η διαδικασία *δημιουργίας* ξεκινά αμέσως μόλις επιβεβαιωθεί η εντολή με το πλήκτρο \[ENTER\]. Αρχικά, το δαίμονα του Docker ελέγχει αν διαθέτει όλα τα αρχεία που χρειάζεται για τη δημιουργία της εικόνας. Στην ορολογία του Docker, αυτό συνοψίζεται στον όρο «context».

Στη συνέχεια, εντοπίζεται η εικόνα *docker/whalesay* με την ετικέτα *:latest*:

Εάν το απαιτούμενο περιβάλλον για τη δημιουργία της εικόνας υπάρχει ήδη στο σύνολό του, τότε το δαίμονα του Docker εκκινεί την εικόνα-πρότυπο που έχει προσδιοριστεί μέσω *της εντολής FROM* σε ένα προσωρινό κοντέινερ και προχωρά στην επόμενη εντολή στο *Dockerfile*. Στο παρόν παράδειγμα, αυτή είναι η εντολή *RUN*, η οποία προκαλεί την εγκατάσταση του προγράμματος *fortunes*.

Στο τέλος κάθε βήματος της διαδικασίας δημιουργίας εικόνας, το Docker σας παρέχει ένα **αναγνωριστικό για το αντίστοιχο επίπεδο** που δημιουργήθηκε σε αυτό το βήμα. Αυτό σημαίνει ότι κάθε γραμμή στο υποκείμενο αρχείο Dockerfile αντιστοιχεί σε ένα επίπεδο της εικόνας που δημιουργήθηκε με βάση αυτό.

Όταν ολοκληρωθεί η εντολή *RUN*, το δαίμονα του Docker τερματίζει το κοντέινερ που δημιουργήθηκε για αυτήν, το διαγράφει και ξεκινά ένα νέο προσωρινό κοντέινερ για το επίπεδο της εντολής CMD. Στο τέλος της διαδικασίας δημιουργίας, αυτό το προσωρινό κοντέινερ τερματίζεται και διαγράφεται επίσης. Το Docker σας παρέχει το αναγνωριστικό της νέας εικόνας:

```none
Successfully built a8f2048c9ab8
```

[![Image: Ubuntu terminal: Status message during image creation](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/f/6/csm_sudo-docker-build-whale-english_d6b1eb3cf7.webp "Ubuntu terminal: Status message during image creation")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-build-whale-english.png) Docker images are created in multiple layers Η εικόνα που μόλις δημιουργήσατε βρίσκεται με το όνομα *docker-whale* στη λίστα των εικόνων που έχετε αποθηκεύσει τοπικά.

```bash
sudo docker images
```

[![Image: Ubuntu terminal: Overview of all images](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/3/9/csm_docker-images-new-docker-whale_4a46337253.webp "Ubuntu terminal: Overview of all images")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-images-new-docker-whale.png) The newly created image in the image overview Για να ξεκινήσετε ένα κοντέινερ από την εικόνα που μόλις δημιουργήσατε, χρησιμοποιήστε την εντολή `sudo docker run` σε συνδυασμό με το όνομα της εικόνας:

```bash
sudo docker run docker-whale
```

Εάν η εικόνα δημιουργήθηκε σωστά από το Dockerfile, η φάλαινά σας θα πρέπει τώρα να σας εμπνέει με λόγια περισσότερο ή λιγότερο σοφά. Σημείωση: Κάθε φορά που επανεκκινείτε το κοντέινερ, δημιουργείται μια νέα φράση.

[![Image: Container based on docker-whale: Text output in the terminal](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/1/1/csm_sudo-run-docker-whale-fortunes-english_3bfb9d5385.webp "Container based on docker-whale: Text output in the terminal")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-run-docker-whale-fortunes-english.png) Thanks to fortunes, the ASCII whale now provides witty or wise phrases  Tip Μπορείτε να μάθετε πώς να δημιουργείτε εικόνες Docker με ακόμη περισσότερες λεπτομέρειες στο ξεχωριστό άρθρο μας για το θέμα αυτό.

#### Προσθέστε ετικέτες στις εικόνες Docker και ανεβάστε τις στο Docker Hub

Αν θέλετε να ανεβάσετε την προσαρμοσμένη εικόνα *docker-whale* σας στο hub και να την διαθέσετε είτε στην κοινότητα είτε σε μια ομάδα εργασίας, πρέπει πρώτα να τη συνδέσετε με ένα αποθετήριο με το ίδιο όνομα στον προσωπικό σας χώρο ονομάτων. Στην ορολογία του Docker, αυτό το βήμα ονομάζεται **«tagging**».

Για να δημοσιεύσετε μια εικόνα στο Docker Hub, ακολουθήστε τα παρακάτω βήματα:

1. **Δημιουργήστε ένα αποθετήριο**: Συνδεθείτε στο Docker Hub χρησιμοποιώντας το Docker ID και τον προσωπικό σας κωδικό πρόσβασης και δημιουργήστε ένα δημόσιο αποθετήριο με το όνομα *docker-whale*.

[![Image: The Docker hub: Entry form for creating a repository](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/3/3/csm_docker-hub-create-docker-whale-repo_1266f7d9ea.webp "The Docker hub: Entry form for creating a repository")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-create-docker-whale-repo.png) Create a repository for your custom image / Source: hub.docker.com 2. **Προσδιορίστε το αναγνωριστικό της εικόνας**: Προσδιορίστε το αναγνωριστικό της προσαρμοσμένης εικόνας σας *docker-whale* χρησιμοποιώντας την εντολή `docker images`.

[![Image: Overview of all local images in the Ubuntu terminal](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/5/a/csm_sudo-docker-images-id-english_265f2f9d16.webp "Overview of all local images in the Ubuntu terminal")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-images-id-english.png) The command docker images lists all images that are saved on your system Στην περίπτωσή μας, το αναγνωριστικό της εικόνας είναι *a8f2048c9ab8*. Το χρειαζόμαστε για την προσθήκη ετικετών στο επόμενο βήμα.

3. **Προσθέστε ετικέτα στην εικόνα**: Προσθέστε ετικέτα στην εικόνα *docker-whale* χρησιμοποιώντας το πρόγραμμα γραμμής εντολών `docker tag` σύμφωνα με τα παρακάτω:

```bash
sudo docker tag [Image-ID][Docker-ID]/[Image-Name]:[TAG]
```

Στο συγκεκριμένο παράδειγμα, η οδηγία της γραμμής εντολών για την προσθήκη ετικετών έχει ως εξής:

```bash
sudo docker tag a8f2048c9ab8 [Namespace]/docker-whale:latest
```

Μπορείτε να ελέγξετε αν έχετε προσθέσει σωστά την ετικέτα στην εικόνα σας χρησιμοποιώντας τη συνοπτική προβολή `docker images`. Το όνομα του αποθετηρίου θα πρέπει πλέον να περιλαμβάνει το Docker ID σας.

[![Image: Ubuntu terminal: Image overview before and after tagging](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/6/e/csm_sudo-docker-tag-docker-whale-english_d2345804e2.webp "Ubuntu terminal: Image overview before and after tagging")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-tag-docker-whale-english.png) Link images with your Docker ID using the command docker tag 4. **Ανεβάστε την εικόνα**: Για να ανεβάσετε την εικόνα, πρέπει πρώτα να συνδεθείτε στο Docker Hub. Αυτό μπορεί να γίνει χρησιμοποιώντας την εντολή `docker login`.

```bash
sudo docker login
```

Στη συνέχεια, το τερματικό θα σας ζητήσει να εισαγάγετε το όνομα χρήστη (Docker ID) και τον κωδικό πρόσβασής σας.

[![Image: Log in to the Docker hub via the Ubuntu terminal](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/3/3/csm_sudo-docker-login-english_77fe04ede0.webp "Log in to the Docker hub via the Ubuntu terminal")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-login-english.png) Before you can upload an image to the Docker hub, you first need to log in Εάν η σύνδεση ήταν επιτυχής, χρησιμοποιήστε την εντολή `docker push` για να ανεβάσετε την εικόνα σας στο αποθετήριο που μόλις δημιουργήθηκε.

```bash
sudo docker push [Namespace]/docker-whale
```

Η διαδικασία μεταφόρτωσης θα διαρκέσει μόνο λίγα δευτερόλεπτα. Η τρέχουσα κατάσταση εμφανίζεται στο τερματικό.

[![Image: Ubuntu terminal: Status message of the image upload](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/c/a/csm_sudo-docker-push-whale-english_44b31ef5fd.webp "Ubuntu terminal: Status message of the image upload")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-push-whale-english.png) After uploading, the image is available under the set tag latest in the Docker hub Συνδεθείτε στο Docker Hub μέσω του προγράμματος περιήγησης για να δείτε την εικόνα που ανεβάσατε.

[![Image: Docker hub: The repository [Namespace]/docker-whale in the detailed view](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/5/e/csm_docker-hub-push-result_56530d8ebc.webp "Docker hub: The repository [Namespace]/docker-whale in the detailed view")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-push-result.png) The latest update of your repository is shown in the detailed view / Source: hub.docker.com Αν θέλετε να ανεβάσετε περισσότερες από μία εικόνες ανά αποθετήριο, χρησιμοποιήστε διαφορετικές ετικέτες για να προσφέρετε τις εικόνες σας σε διαφορετικές εκδόσεις. Για παράδειγμα:

```none
[Namespace]/docker-whale:latest
[Namespace]/docker-whale:version1
[Namespace]/docker-whale:version2
```

Μια επισκόπηση των διαφόρων εκδόσεων εικόνων βρίσκεται στο αποθετήριο του Docker Hub, στην καρτέλα «Ετικέτες».

[![Image: Docker hub: The ‘Tags’ tab](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/3/9/csm_docker-hub-multiple-versions-tags_e6c43a478d.webp "Docker hub: The ‘Tags’ tab")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/docker-hub-multiple-versions-tags.png) In the ‘Tags’ tab, you’ll find all versions of an image / Source: hub.docker.com Ωστόσο, οι εικόνες των διαφόρων έργων θα πρέπει να διατίθενται σε ξεχωριστά αποθετήρια.

Εάν η μεταφόρτωση ολοκληρώθηκε με επιτυχία, η προσαρμοσμένη εικόνα σας θα είναι πλέον διαθέσιμη στο δημόσιο αποθετήριο για όλους τους χρήστες του Docker σε όλο τον κόσμο.

1. **Δοκιμαστική εκτέλεση**: Ελέγξτε αν η μεταφόρτωση ολοκληρώθηκε με επιτυχία, προσπαθώντας να κατεβάσετε την εικόνα.

Σημειώστε ότι πρέπει πρώτα να διαγραφεί η τοπική έκδοση της εικόνας, προκειμένου να κατεβάσετε ένα νέο αντίγραφο με την ίδια ετικέτα. Διαφορετικά, το Docker θα αναφέρει ότι η επιθυμητή εικόνα υπάρχει ήδη στην τρέχουσα έκδοση.

[![Image: The Image is up to date](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/f/0/csm_sudo-docker-pull-docker-whale-english_84e2e758c4.webp "The Image is up to date")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-pull-docker-whale-english.png) If an image exists locally, the pull command is cancelled Για να διαγράψετε την τοπική εικόνα Docker, χρησιμοποιήστε την εντολή `docker rmi` σε συνδυασμό με τον αντίστοιχο αναγνωριστικό της εικόνας. Αυτός προσδιορίζεται, όπως συνήθως, μέσω `docker images`. Εάν το Docker αναφέρει σύγκρουση, π.χ. επειδή ένα αναγνωριστικό εικόνας χρησιμοποιείται σε πολλά αποθετήρια ή σε κάποιο κοντέινερ, επαναλάβετε την εντολή σας με την επιλογή `--force` (*-f* για συντομία) για **να επιβάλετε τη διαγραφή**.

```bash
sudo docker rmi -f a8f2048c9ab8
```

[![Image: Command docker rmi in combination with the option -f (force)](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/b/f/csm_sudo-docker-rmi-remove-image_75b679b119.webp "Command docker rmi in combination with the option -f (force)")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-rmi-remove-image.png) Use the command docker rmi in combination with the option -f to force a deletion Εμφάνιση ξανά της συνολικής εικόνας όλων των τοπικών εικόνων:

```bash
sudo docker Images
```

Τα στοιχεία που διαγράφηκαν δεν θα πρέπει πλέον να εμφανίζονται στην έξοδο του τερματικού. Τώρα χρησιμοποιήστε την εντολή `pull` που παρέχεται στο αποθετήριο για να κατεβάσετε ένα **νέο αντίγραφο της εικόνας** από το Docker Hub.

```bash
sudo docker pull [Namespace]/docker-whale
```

[![Image: Ubuntu terminal: Download from the Docker hub](https://www.ionos.com/el-gr/digitalguide/fileadmin/_processed_/4/8/csm_sudo-docker-pull-image-redownload_3dfb6af27f.webp "Ubuntu terminal: Download from the Docker hub")](https://www.ionos.com/el-gr/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/sudo-docker-pull-image-redownload.png) The previously published image is successfully downloaded ## Πρόσθετα θέματα και σεμινάρια για το Docker

Ο κόσμος του Docker είναι ευρύς και, με την πάροδο του χρόνου, [έχει αναπτυχθεί](https://www.ionos.com/el-gr/digitalguide/diakomistis/technognosia/ergaleia-docker-to-oikosystima-tis-platformas-konteiner/) ένα ζωντανό [οικοσύστημα γύρω από τα εργαλεία του Docker](https://www.ionos.com/el-gr/digitalguide/diakomistis/technognosia/ergaleia-docker-to-oikosystima-tis-platformas-konteiner/). Το Docker είναι ιδιαίτερα χρήσιμο για τους διαχειριστές, ειδικά όταν διαχειρίζονται σύνθετες εφαρμογές με πολλά containers που λειτουργούν παράλληλα σε διαφορετικά συστήματα. Το Docker προσφέρει ποικίλες λειτουργίες για τον **συντονισμό** τέτοιων clusters. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με αυτό στο άρθρο μας για τον συντονισμό του Docker με τα Swarm και Compose.

Ο Ψηφιακός Οδηγός περιλαμβάνει **επιπλέον εκπαιδευτικά βίντεο** για τη χρήση του Docker:

- Δημιουργία αποθετηρίου Docker
- Τόμοι κοντέινερ Docker
- Docker: Δημιουργία αντιγράφων ασφαλείας και επαναφορά
- Εγκατάσταση και εκτέλεση του Docker σε διακομιστή Linux
- Εκπαιδευτικό σεμινάριο για το Docker Compose

Το Docker είναι κατάλληλο για **διάφορες περιπτώσεις χρήσης**. Στον Ψηφιακό Οδηγό θα βρείτε τα ακόλουθα σεμινάρια:

- [Εγκατάσταση του WordPress σε κοντέινερ Docker](https://www.ionos.com/el-gr/digitalguide/diakomistis/technognosia/wordpress-se-konteiner-docker/)
- Εκτέλεση VPN σε κοντέινερ Docker χρησιμοποιώντας το SoftEther
- Εγκατάσταση Nextcloud με Docker
- Εγκατάσταση του Portainer στο Docker
- Redis σε κοντέινερ Docker
- Διακομιστής Valheim Docker

Το Docker δεν είναι πάντα η καλύτερη επιλογή για κάθε εφαρμογή. Σε ένα από τα άρθρα μας παρουσιάζονται οι πιο δημοφιλείς [εναλλακτικές λύσεις του Docker](https://www.ionos.com/el-gr/digitalguide/diakomistis/technognosia/oi-enallaktikes-lyseis-toy-docker-me-mia-matia/). Επιπλέον, διαθέτουμε πολλά άρθρα που συγκρίνουν το Docker με άλλες πλατφόρμες:

- Kubernetes έναντι Docker
- Openshift έναντι Docker
- Podman έναντι Docker


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/ekpaideytiko-seminario-gia-to-docker-egkatastasi-kai-prota-bimata/](https://www.ionos.com/el-gr/digitalguide/diakomistis/rythmiseis/ekpaideytiko-seminario-gia-to-docker-egkatastasi-kai-prota-bimata/) for AI/LLM consumption.