PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Problème avec les conteneurs docker postgresql et pgadmin

J'ai reproduit votre scénario de cette façon :

# docker run -p 5431:5432 --name postgres2 -e POSTGRES_PASSWORD=ad1234 -d postgres
# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
d4030c577a24        postgres            "docker-entrypoint.s…"   2 minutes ago      Up 2 minutes       0.0.0.0:5431->5432/tcp   postgres2

# sudo -u postgres psql -h localhost -p 5431
could not change directory to "/root": Permission denied
Password: 
psql (10.5, server 11.2 (Debian 11.2-1.pgdg90+1))
WARNING: psql major version 10, server major version 11.
         Some psql features might not work.
Type "help" for help.

postgres=# CREATE DATABASE mytestdb;
CREATE DATABASE
postgres=# \q

Démarrage de docker pour pgadmin et possibilité de se connecter à postgresql :

docker run -p 80:80 --link postgres2 -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=SuperSecret" -d dpage/pgadmin4

Avec la commande ci-dessus, vous pouvez lier le docker postgres2 au docker pgadmin, puis lors de la création d'une connexion sur pgadmin4, vous devez utiliser :

  • nom/adresse d'hôte :postgres2
  • port :5432
  • Base de données de maintenance :postgres
  • nom d'utilisateur :postgres

avec cela, je me suis connecté à Postgres depuis pgadmin4

Autant que je sache, docker PostgreSQL est livré par défaut avec une connexion localhost uniquement et si vous souhaitez ajouter une connexion à distance, vous devez ajouter "listen_addresses ='*'" à postgresql.conf