Dbeaver не показывает мои базы данных Docker Postgres и их содержимое

Когда я подключаюсь через psql с помощью этой команды docker exec -it 4e18793cb23c psql -U postgres mytestdb, я могу видеть свою базу данных и работать с ней. Но когда я подключаюсь с помощью dbeaver к своему док-контейнеру postgres, он не показывает мне мои данные. Но когда я хочу создать такую ​​же базу данных, он говорит, что она существует. Кроме того, при выборе таблиц пишет, что таблица не существует. Несколько вещей, которые я проверил:

  • каталог (zorin os/ubuntu) /var/lib/postgres не существует
  • Проверка тома докера показывает мне это:
docker volume inspect pgdata                                                                                                                                           
    [
    {

        "CreatedAt": "2024-04-13T09:03:53+02:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/pgdata/_data",
        "Name": "pgdata",
        "Options": null,
        "Scope": "local"
    }]

У меня не установлен Postgres непосредственно на моем компьютере.

Как мне сделать так, чтобы мои базы данных, таблицы и все остальное отображались в dbeaver?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
188
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Не знаю, как вы запускаете контейнер PostgreSQL, но, скорее всего, это будет ключом.

Докер-клиент

Если вы запускаете PostgreSQL с помощью клиента Docker, вы должны сделать что-то вроде этого:

docker run --rm -p 5432:5432 -e POSTGRES_PASSWORD=password \
    --name postgres postgres:latest

Вы упоминаете, что начинаете свой контейнер с docker start, но я предполагаю, что это означает, что на каком-то этапе вы бы запустили его с docker run.

ИМХО, маршрут Docker Compose для запуска базы данных лучше, поскольку он документирует все детали, связанные с запуском контейнера.

Докер Составление

Если вы используете Docker Compose, то примерно так:

🗎 docker-compose.yml

version: "3.9"

services:
  postgres:
    image: postgres:latest
    container_name: postgres
    ports:
      - 5432:5432
    volumes:
      - ./create-table.sql:/docker-entrypoint-initdb.d/create-table.sql:ro
      - ./pgdata:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=password

ports гарантирует, что база данных будет доступна за пределами сети Docker.

Существует два варианта подключения тома: (1) для сценария инициализации и (2) для сохранения базы данных между сеансами.

На снимке экрана ниже вы можете видеть работающий стек Docker Compose (верхняя панель терминала), соединение с использованием docker exec в этом контейнере (нижняя панель терминала) и соединение от DBeaver.

Я не использую Docker Compose. Я либо начинаю его с команды в моем вопросе, либо с docker start [containername], как показано в руководстве по Docker Hub Postgres или как показано в некоторых видеороликах на YouTube.

Tinaira 14.04.2024 08:32

извини. уточнение. первая команда в моем вопросе — как получить доступ к psql в моем терминале после запуска докера с помощью docker start

Tinaira 14.04.2024 09:30
Ответ принят как подходящий

РЕШЕНИЕ: это безумие, но проверка «показать все базы данных» в настройках подключения решила эту проблему.

Другие вопросы по теме