Глава 6 · 6.4
Обновяване на контейнери, почистване и ограничаване на логовете
Обновяване
Контейнерът не се обновява сам. Изтеглете новите images и стартирайте контейнерите отново:
anna@web1:~$ cd /srv/diensten
anna@web1:/srv/diensten$ sudo docker compose pull
anna@web1:/srv/diensten$ sudo docker compose up -d
Създават се отново само контейнерите с нов image. Вашите данни са във volumes и се запазват.
- Преди голямо обновяване прочетете release notes на приложението. Понякога първо трябва да промените нещо.
- Преди обновяване направете резервно копие на volumes (вижте Правилно архивиране на бази данни и Docker volumes) или поне snapshot.
- Фиксирана версия в тага, например
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, които не се използват от нито един контейнер.
Внимание: Бъдете внимателни с docker volume prune и docker system prune --volumes. С тях можете да изтриете данни, които все още са Ви нужни.
Ограничаване на логовете
Docker съхранява изхода на всеки контейнер в лог файл, който по подразбиране расте неограничено. Задайте ограничение в /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
Ограничението важи само за контейнери, създадени след промяната. Затова ги създайте отново.
Спиране и премахване
| Команда | Какво прави? |
|---|---|
sudo docker compose stop | Спира контейнерите, без да изтрива нищо |
sudo docker compose down | Премахва контейнерите и мрежата, volumes остават |
sudo docker compose down -v | Премахва и volumes: всички Ваши данни изчезват |
