Редкий Docker-трюк для баз данных: отдельный volume под WAL У… — DevOps — TG.ME

Редкий Docker-трюк для баз данных: отдельный volume под WAL

У Postgres есть место, куда он пишет журнал изменений: WAL.

Если база активно пишет данные, WAL может стать узким местом. В Docker его можно вынести в отдельный volume:


services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_INITDB_WALDIR: /var/lib/postgresql/wal
volumes:
- pg_data:/var/lib/postgresql/data
- pg_wal:/var/lib/postgresql/wal

volumes:
pg_data:
pg_wal:


Зачем это нужно:

1. данные базы лежат отдельно
2. журнал транзакций лежит отдельно
3. проще мониторить рост WAL
4. меньше риска забить основной volume логами

Особенно полезно для staging, pet-проектов с нагрузкой и локальных стендов, где внезапно «почему Postgres сожрал весь диск».

Мелочь, но уже уровень не “я просто поднял базу в Docker”, а нормальная инженерная привычка.
❤12😁4👍2🔥1
June 24, 2026 4.6K 115