Контейнер Docker compose не виден внутри pgAdmin4

#docker

Вопрос:

Я создал файл docker, чтобы создать контейнер pgAdmin4 и контейнер postgres.

 version: '3.8'

services:
 postgres:
   container_name: pg_container
   image: postgres
   restart: always
 environment:
   POSTGRES_USER: webquiver
   POSTGRES_PASSWORD: webquiver
   POSTGRES_DB: quiver_db
 ports:
   - "5432:5432"
 pgadmin:
   container_name: pgadmin4_container
   image: dpage/pgadmin4
   restart: always
   environment:
     PGADMIN_DEFAULT_EMAIL: admin@admin.com
     PGADMIN_DEFAULT_PASSWORD: admin
   ports:
     - "5050:80"
 

При запуске docker compose up я могу перейти на локальный хост:5050, чтобы добраться до pgAdmin4 и войти в систему с моими учетными данными, которые вы можете увидеть в коде.
Но когда я использую раскрывающееся меню для серверов, оно пустое. ничто не создается. И я не могу создать там ни одного сервера. Это мне не позволяет. Я получаю ошибку:

 Unable to connect to server:

could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and 
accepting
TCP/IP connections on port 5432?
could not connect to server: Address not available
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
 

пожалуйста, помогите. ТХ ^^

приветствие

Ответ №1:

Я воспроизвел ваш файл docker-compose, и с ним все в порядке. Я предполагаю, что существует недопонимание того, как postgres и pgadmin взаимодействуют друг с другом с нуля. pgadmin-это только интерфейс, который вы можете подключить к базе данных postgres, он не выполняет автоматический поиск любого существующего сервера postgres.

Я могу добавить сервер внутри pgadmin с этим хостом и портом: postgres:5432, так как внутри докера имя службы будет разрешено как имя хоста postgres для другой службы pgadmin. введите описание изображения здесь

Эта конфигурация будет потеряна при повторном запуске композиции, так как тома для сохранения конфигурации не указаны. Поэтому вы должны следовать шагам из Importing-servers и повторять их каждый раз, когда вы запускаете композицию. например: создайте свой собственный образ pgadmin, который указывает json для импорта при запуске

  • Используйте build: свойство docker compose для указания источника

Комментарии:

1. Спасибо @fisehara за ваш ответ. При создании сервера я получаю ошибку, которую я только что добавил в свой первоначальный пост

Ответ №2:

Хорошо, после ночного сна я обнаружил проблему. Для хоста сервера я написал имя бд, а не настоящее имя контейнера. Таким образом, pgAdmin не смог найти контейнер.

Хорошего дня. : )