Почему нельзя использовать пароль root для пользователя Postgres в Docker Compose?

Как настроить корректную аутентификацию для пользователя "root" при подключении к базе данных PostgreSQL с использованием контейнера Docker? Как указать пароль для пользователя "root" в данной конфигурации, если это необходимо?
  • 20 марта 2024 г. 12:29
Ответы на вопрос 2
Нельзя использовать пароль root для пользователя Postgres в Docker Compose из-за того, что внутри контейнера базы данных PostgreSQL обычно создается пользователь "postgres" с правами администратора, а не "root".

Для настройки корректной аутентификации для пользователя "root" при подключении к базе данных PostgreSQL с использованием контейнера Docker, следует создать отдельного пользователя с правами администратора в базе данных. 

Например, в файле docker-compose.yml можно добавить следующий блок в раздел services:

```yaml
services:
  db:
    image: postgres
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password
    ports:
      - "5432:5432"
```

После запуска контейнера можно подключиться к базе данных с помощью команды:

```
psql -U admin -h localhost -p 5432
```

Если необходимо сменить или указать пароль для пользователя "root" (admin), измените значение POSTGRES_PASSWORD в блоке environment на необходимый. После этого необходимо перезапустить контейнер.
Это пароль от суперпользователя postgres , а не рута. Никакого рута внутри Постгреса по умолчанию нет. 

psql -U postgres
Похожие вопросы