0
votes

Impossible de se connecter à db situé dans le conteneur Docker

J'essaie de créer PostgreSQL DB à l'intérieur du conteneur Docker et de vous connecter à partir de ma machine locale. Exécution docker-composition UP -D avec cet intérieur docker-compose.yml : xxx

s'est terminé avec succès. Pas de crash, des erreurs de quelque chose. Mais, quand j'essaie de me connecter avec pgadmin4 avec ces informations d'identification:

  • Nom d'hôte / Adresse: Localhost
  • PORT: 5432
  • Base de données de maintenance: DB
  • Nom d'utilisateur: root
  • Mot de passe: root

    Il me dit:

    Impossible de se connecter au serveur:

    fatal: l'authentification par mot de passe a échoué pour l'utilisateur "racine"


    mon système d'exploitation: Windows 10 Build (1809)

    Version PostgreSQL (installée sur la machine locale): 12

    Docker Version: 19.03.13, Construire 4484C46D9D


    UPD 1:

    Après ré-création de conteneur avec différents ports (maintenant 5433: 5433), PGADMIN4 Erreur a changé:

    Impossible de se connecter au serveur:

    serveur fermé la connexion inopinément Cela signifie probablement le serveur terminé anormalement avant ou lors du traitement de la demande.


5 commentaires

Quelle est la sortie de docker-composant journaux ?


@Akop, Pastebin.com/ccaevycb . Coupé comment DB est l'initialisation


Vous pouvez vérifier si la DB, la création utilisateur / pwd réussit en faisant Docker Exec à l'intérieur de ce conteneur et exécutant PSQL -U racine -d -d dB et voir si la prise établie


Vous avez installé Postgres sur votre Maschine locale? Peut-être essayez-vous de vous connecter à la mauvaise base de données.


@ Wander3r fonctionne très bien dans le conteneur, aucune erreur


3 Réponses :


0
votes

Combien de temps attendez-vous entre le démarrage de la DB et essayer d'y accéder?

Même si l'image PostgreSQL est disponible localement, cette commande réinitialisera l'espace de fichier de base de données à chaque démarrage - cela pourrait prendre quelques minutes. Regardez le journal (supprimer le -d ) pour voir quand il est réellement prêt.

Idéalement, vous devez utiliser un volume de docker afin que les redémarrages ultérieurs sont instantanés.

Mes Docker pour les développeurs Web Le parcours de livres et de vidéo explique comment configurer bons environnements de développement local. Utilisez le code de réduction dock30 pour 30% de réduction.


0 commentaires

0
votes

Nom d'hôte / adresse: localhost p>

port: 5432 P> BlockQuote>

Vous essayez de vous connecter au port 5432 sur localhost. Êtes-vous sûr que votre conteneur prend l'adresse IP de l'hôte? P>

Pour que le conteneur fonctionne avec l'hôte IP exécuter le conteneur avec l'option d'hôte --Network. P>

docker run --network host <rest of the command>

0 commentaires

0
votes

Avez-vous vérifié que vous avez nettoyé des anciens instances fonctionnant localement et que vous n'essayez pas d'accéder à une ancienne instance?

Vous pouvez éliminer tous les conteneurs Docker locaux avec: Docker RM -F $ (Docker PS -AQ)

Une fois que vous avez un environnement propre, vous pouvez essayer de faire tourner les conteneurs à nouveau localement et voir si vous pouvez accéder au service. Je copie / collé ce que vous avez dans un docker-compose.yaml et ran docker-composez up contre le fichier - Ça a fonctionné et je suis connecté et j'ai été capable de voir La table pg_user .

S'il échoue toujours, vous pouvez essayer de trouver l'adresse IP à l'aide de: Netstat -in | grep fr0 qui montrera quelque chose comme

EN0 1500 192.168.1 ** 192.168.1.163 ** 15301832 - 9001208 - - -

Ceci indique l'adresse IP externe / accessible du conteneur. Essayez d'utiliser l'adresse indiquée (quelque chose de similaire au 192.168.1.163) au lieu de localhost


0 commentaires