Проблема с подключением Docker Postgres

Может ли кто-нибудь помочь мне с этим?

что я запускаю:

docker run --name pgres --rm \
    -e POSTGRES_USER=uzer \
    -e POSTGRES_PASSWORD=1234 \
    -e POSTGRES_DB=sample_db \
    -p 5432:5432 postgres:14.1

но я не могу подключиться к этому:

даже в журнале ничего не происходит:

waiting for server to shut down...2024-07-24 18:07:19.272 UTC [48] LOG:  received fast shutdown request
.2024-07-24 18:07:19.273 UTC [48] LOG:  aborting any active transactions
2024-07-24 18:07:19.275 UTC [48] LOG:  background worker "logical replication launcher" (PID 55) exited with exit code 1
2024-07-24 18:07:19.275 UTC [50] LOG:  shutting down
2024-07-24 18:07:19.284 UTC [48] LOG:  database system is shut down
 done
server stopped

PostgreSQL init process complete; ready for start up.

2024-07-24 18:07:19.396 UTC [1] LOG:  starting PostgreSQL 14.1 (Debian 14.1-1.pgdg110+1) on aarch64-unknown-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2024-07-24 18:07:19.397 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2024-07-24 18:07:19.397 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2024-07-24 18:07:19.398 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2024-07-24 18:07:19.401 UTC [62] LOG:  database system was shut down at 2024-07-24 18:07:19 UTC
2024-07-24 18:07:19.405 UTC [1] LOG:  database system is ready to accept connections




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

Ответы 2

Поскольку у вас есть база данных в контейнере, а pgAdmin в другом контейнере, вы не можете использовать «localhost» в pgAdmin для попытки доступа к базе данных, поскольку «localhost» будет контейнером, в котором работает pgAdmin.

Убедитесь, что оба контейнера используют одну и ту же сеть (создайте сеть и запустите оба контейнера в -> https://docs.docker.com/engine/reference/run/#container-networking), а затем вместо этого в интерфейсе pgAdmin. из «localhost» используйте имя контейнера базы данных, это должно решить проблему.

Для запуска postgres используйте:

docker run --name pgres --network my-net --rm -e POSTGRES_USER=uzer -e POSTGRES_PASSWORD=1234 -e POSTGRES_DB=sample_db -p 5433:5432 postgres:14.1

Для запуска pgAdmin используйте:

docker run -p 80:80 --network my-net -e '[email protected]' -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' -d dpage/pgadmin4

Теперь вы сможете использовать pgres в качестве сервера.

1. Я попробовал это, но проблема, я думаю, на шаг раньше, судя по сообщению об ошибке (подключение к порту). --- 2. localhost всегда помогал моей системе, так в чем же проблема сейчас? даже pgAdmin находится в другом контейнере и работает с ним http://localhost:32769/ Я попробовал подключиться к pgAdmin и intellij Idea, но оба не увенчались успехом.

imany apk 24.07.2024 12:33

Если вы запустите «docker ps» после создания контейнера, каков будет результат?

William Andrés Bernal 24.07.2024 13:13

Это нормально, 14016e0b2925 postgres:14.1 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:5432->5432/tcp pgres

imany apk 24.07.2024 15:48

Я не заметил, что pgAdmin также работает в докер-контейнере, на основе этого я отредактировал свой ответ.

William Andrés Bernal 24.07.2024 16:35

использование pgres в качестве имени хоста дает мне Unable to connect to server, Connection is bad, Name does not resolve ошибку, и (по вдохновению вашего комментария, спасибо) при другой попытке я смог подключиться к IP контейнера, это сработало, но почему localhost нет? в то время как оба контейнера сопоставлены с локальным хостом

imany apk 24.07.2024 16:59

Попробуйте то, что я только что включил в свой ответ: работа с сетями. Localhost не будет работать, потому что pgres — это изолированный сервер, а pgadmin — другой, поэтому, если вы вызываете localhost внутри pgadmin, он будет искать базу данных на сервере pgadmin, где не работает служба базы данных. Затем вам нужно настроить сеть и разместить в ней оба контейнера.

William Andrés Bernal 24.07.2024 17:39
Ответ принят как подходящий

Виноват; Я совсем забыл.

Проблема была в Tor, я его отключил и теперь проблема решена.

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