web-dev-qa-db-fra.com

docker postgres pgadmin connexion locale

J'ai créé une image Ubuntu avec nginx, php et postgres.

Je souhaite connecter la base de données postgres dans mon image actuelle avec pgadmin situé sur mon ordinateur local. 

J'ai essayé d'utiliser Docker Inspector pour essayer d'utiliser l'image ip pour établir une connexion avec mon pgadmin local, mais sans grand succès. J'ai également essayé de configurer des ports sur le réseau local pour que la connexion fonctionne.

39
Rigoxls

C'est une question valide. Je ne sais pas pourquoi les gens pensent "ne semble pas possible de répondre à cette question".

Alors, voici comment je fais ce que vous essayez de faire:

  1. Tirez l'image postgres de Docker Hub

    docker pull postgres:latest

  2. Exécuter le conteneur en utilisant la commande ci-dessous

    docker run -p 5432:5432 postgres

  3. Utilisation de la commande inspect de docker pour trouver l'IP

  4. Utilisez cette adresse IP, ce port, ce nom d'utilisateur et ce mot de passe pour vous connecter à PGADMIN.

  5. Vous pouvez également faire un simple telnet comme ci-dessous pour confirmer si vous pouvez accéder à Docker Postgres Container:

    telnet IP_ADDRESS 5432

57
stack.it

Ce que j'ai fait avec succès sur Windows 10 en cours d'exécution docker pour Windows 1.12.6 (9655), la procédure est la suivante

  1. Tirez le dernier postgres

    docker pull postgres:latest

  2. lancez le conteneur postgres: 

    docker run -d -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password123 --name db-my -p 5432:5432 --restart=always postgres

  3. Puis installé la dernière version de pgAdmin4 depuis pgadmin website

  4. Lancez pgAdmin 4, créez un nouveau serveur et saisissez les données suivantes.

  5. Ensuite, tout est ok, connectez-vous à Docker Postgres Instance Success.
30
Maosheng Wang

Vous pouvez également combiner Postgres et Pgadmin dans un fichier docker-compose et vous connecter en tant qu'utilisateur [email protected], pwd: admin. Pour ajouter le serveur Posgres, utilisez le nom d’hôte postgres, le port 5432.

version: '3'
services:
  postgres:
    image: postgres
    hostname: postgres
    ports:
      - "6543:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: TEST_SM
    volumes:
      - postgres-data:/var/lib/postgresql/data
    restart: unless-stopped

  pgadmin:
    image: dpage/pgadmin4
    depends_on:
      - postgres
    ports:
      - "5555:80"
    environment:
      PGADMIN_DEFAULT_EMAIL: [email protected]
      PGADMIN_DEFAULT_PASSWORD: admin
    restart: unless-stopped

volumes:
  postgres-data:
9
Erik Vullings

Vous devez exposer le port postgres du conteneur à votre système local. Vous faites cela en exécutant votre conteneur comme ceci:

docker run -p 5432:5432 <name/id of container>

lors de la connexion avec votre client graphique ou votre interface de ligne de commande, veillez à utiliser l'adresse IP non localhost, même si votre adresse IP est l'adresse IP localhost.

docker ps vous donnerait l'adresse IP de votre conteneur postgres.

4
meij

Si pgAdmin est destiné à être exécuté dans le même hôte/invité Ubuntu, vous devez lier le conteneur postgres afin qu'il puisse être résolu par un nom.

1. Exécutez un conteneur postgres:

docker run --name some-postgres -e POSTGRES_PASSWORD=postgres -d postgres

2. Exécutez le conteneur pgAdmin:

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

3. Maintenant, lors de l'ajout d'un nouveau serveur dans l'application Web phAdmin, utilisez some-postgres comme nom de serveur

Notez le --link some-postgres lorsque nous avons évoqué pgAdmin. Cette commande rend le conteneur postgres visible au conteneur pgAdmin.

4
Aleksandr Makov

C'est ce que j'ai fait

pour postgres

docker run -p 5432:5432  --name container-postgresdb -e POSTGRES_PASSWORD=admin -d postgres

pour pgadmin

docker run -p 5050:80  -e "[email protected]" -e "PGADMIN_DEFAULT_PASSWORD=admin"  -d dpage/pgadmin4

Chaîne de connexion pour pgadmin

Host: Host.docker.internal
database: postgres
user: postgres
password: admin

Ça fonctionne bien!!!!!

3
thavaamm

La solution que j'ai essayée et travaillée pour moi était de créer un fichier de composition de docker dans lequel j'ai inclus postgress et pgadmin en tant que services. Pour plus de détails: Connexion de pgadmin à postgres dans docker

0
Andrei Bacescu