Κεφάλαιο 6 · 6.4
Ενημέρωση containers, καθαρισμός και περιορισμός των logs
Ενημέρωση
Ένα container δεν ενημερώνεται μόνο του. Κατεβάζετε τα νέα images και ξεκινάτε ξανά τα containers:
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo docker compose pull
anna@web1:/srv/diensten$ sudo docker compose up -d
Δημιουργούνται ξανά μόνο τα containers για τα οποία υπάρχει νέο image. Τα δεδομένα σας βρίσκονται σε volumes και διατηρούνται.
- Πριν από μια μεγάλη ενημέρωση, διαβάστε τις release notes της εφαρμογής. Μερικές φορές πρέπει πρώτα να προσαρμόσετε κάτι.
- Πριν από μια ενημέρωση, δημιουργήστε αντίγραφο ασφαλείας των volumes (δείτε Σωστή συμπερίληψη βάσεων δεδομένων και Docker volumes στα αντίγραφα ασφαλείας) ή τουλάχιστον ένα snapshot.
- Μια σταθερή έκδοση στο tag, όπως
vaultwarden/server:1.37.5, αποτρέπει τις εκπλήξεις. Σε αυτή την περίπτωση την αυξάνετε εσείς. Μεlatestπαίρνετε σε κάθεpullτην πιο πρόσφατη.
Καθαρισμός
Τα παλιά images παραμένουν στον δίσκο σας. Δείτε πόσο χώρο χρησιμοποιεί το Docker και κάντε καθαρισμό:
anna@web1:~$ sudo docker system df
anna@web1:~$ sudo docker image prune
Η εντολή docker image prune διαγράφει μόνο images χωρίς όνομα που δεν ανήκουν πλέον πουθενά. Με -a διαγράφει όλα τα images που δεν χρησιμοποιεί κανένα container.
Προσοχή: Να είστε προσεκτικοί με τις εντολές docker volume prune και docker system prune --volumes. Με αυτές μπορεί να διαγράψετε δεδομένα που χρειάζεστε ακόμη.
Περιορισμός των logs
Το Docker αποθηκεύει την έξοδο κάθε container σε ένα αρχείο log που από προεπιλογή μεγαλώνει χωρίς όριο. Ορίστε ένα όριο στο /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
anna@web1:~$ sudo systemctl restart docker
anna@web1:~$ cd /srv/diensten && sudo docker compose up -d --force-recreate
Το όριο ισχύει μόνο για containers που δημιουργούνται μετά την αλλαγή. Γι' αυτό τα δημιουργείτε ξανά.
Διακοπή και αφαίρεση
| Εντολή | Τι κάνει; |
|---|---|
sudo docker compose stop | Σταματά τα containers, χωρίς να διαγράφει τίποτα |
sudo docker compose down | Αφαιρεί τα containers και το δίκτυο. Τα volumes παραμένουν |
sudo docker compose down -v | Αφαιρεί και τα volumes: όλα τα δεδομένα σας χάνονται |
