· docker

Docker Compose: как обновлять контейнеры и не потерять данные

Контейнер — вещь одноразовая: при обновлении образа он удаляется и создаётся заново. Всё, что было записано внутрь контейнера, исчезает вместе с ним. Поэтому данные должны жить снаружи.

Два способа хранить данные

Именованный том управляется самим Docker и переживает пересоздание контейнера:

services:
  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:

Bind-монтирование подключает обычную папку с хоста. Его удобнее бэкапить и смотреть глазами:

    volumes:
      - ./data:/var/lib/app

Порядок обновления

docker compose pull
docker compose up -d
docker image prune -f

up -d пересоздаст только те контейнеры, у которых изменился образ или конфигурация. Тома при этом не трогаются.

Чего не делать

← Ко всем заметкам