Введение в первый запуск PostgreSQL в Docker
Первый запуск выполняет скрипты и настройки только на пустом каталоге данных. Когда файлы кластера уже лежат в томе, повторное создание контейнера не запускает инициализацию заново - сервер просто открывает готовое хранилище.
Образ кладёт SQL и сценарии
оболочки в подключённую папку
/docker-entrypoint-initdb.d
и выполняет их по порядку,
пока каталог данных пуст.
Так один раз создают таблицы
и другие объекты без ручного
ввода после каждого подъёма.
Отдельный файл параметров можно смонтировать вместо стандартного конфига, если при старте указать, какой файл читать. Один параметр иногда удобнее передать флагом запуска, не заводя файл на диске.
Кодировка нового кластера
задаётся аргументами
программы initdb
и фиксируется при первом
создании каталога данных.
Часовой пояс сессии
сервер берёт из параметров
запуска процесса,
и клиент видит то же значение
в запросах к времени.
Учебные примеры опираются
на образ postgres:18,
пароль demo,
пользователя postgres
и том на /var/lib/postgresql.
Файл compose.yaml
описывает сервис db
и монтирование хранилища.