Ustal, co naprawdę trzeba zachować
Plik Compose opisuje usługi, ale nie jest kopią ich danych. Zidentyfikuj nazwane wolumeny, bind mounty, bazy danych i pliki konfiguracyjne. Dane zapisane wyłącznie w zapisywalnej warstwie kontenera mogą zniknąć wraz z jego wymianą. Zapisz używany tag lub digest obrazu oraz wersję schematu bazy.
Przygotuj konfigurację
Poniższy fragment ilustruje trwały wolumen dla PostgreSQL 17. Dopasuj wersję do istniejącego klastra; zmiana głównej wersji PostgreSQL jest migracją, nie zwykłą podmianą tagu. Zmienna musi być dostępna w środowisku procesu Compose.
services:
db:
image: postgres:17
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD}
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Nie traktuj przykładowego hasła z poradnika jako sekretu produkcyjnego. Pliku z właściwymi wartościami nie publikuj. docker compose config może wypisać rozwinięte wartości zmiennych — wynik także wymaga ostrożnego przechowywania.
Wykonaj kontrolowaną zmianę
docker compose config --quiet
docker compose pull
docker compose up -d
docker compose ps
docker compose logs --tail=80Przed tym etapem wykonaj kopię zgodną z używanym silnikiem bazy. Archiwum plików aktywnej bazy nie zawsze jest spójne. Po uruchomieniu sprawdź logi, healthcheck i rzeczywistą operację aplikacji, np. odczyt wcześniej zapisanego rekordu.
Sprawdź plan powrotu
Odtworzenie starego obrazu nie cofa migracji danych. Próbę przywrócenia wykonuj w osobnym projekcie i na osobnym wolumenie. Zmiana nazwy projektu Compose może spowodować wybór innego wolumenu o podobnej nazwie, dlatego porównaj także identyfikatory zasobów. Nie używaj down -v ani czyszczenia wolumenów jako rutynowego kroku aktualizacji.
Źródła i dokumentacja
Odnośniki do źródeł pozwalają sprawdzić daty, dostępność oraz pełny kontekst informacji.