it-swarm.com.de

docker postgre pgadmin lokale Verbindung

Ich habe ein Ubuntu-Image mit Nginx, PHP und Postgres erstellt.

Ich möchte die Postgres-Datenbank in meinem aktuellen Image mit pgadmin auf meinem lokalen Rechner verbinden. 

Ich habe versucht, mit dem Docker-Inspector zu versuchen, die Image-IP zu verwenden, um eine Verbindung mit meinem lokalen pgadmin herzustellen, jedoch ohne großen Erfolg. Ich habe auch versucht, einige Ports auf Local zu konfigurieren, um die Verbindung herzustellen.

39
Rigoxls

Es ist eine gültige Frage. Ich weiß nicht, warum die Leute glauben, dass sie diese Frage nicht beantworten können.

So mache ich, was Sie zu tun versuchen:

  1. Ziehen Sie das Postgres-Bild vom Docker Hub

    docker pull postgres:latest

  2. Führen Sie den Container mit dem folgenden Befehl aus

    docker run -p 5432:5432 postgres

  3. Verwenden Sie den Andockbefehl des Dockers, um die IP-Adresse zu finden

  4. Verwenden Sie diese IP-Adresse, diesen PORT, Benutzernamen und das Passwort, um sich in PGADMIN zu verbinden

  5. Sie können auch ein einfaches Telnet wie unten verwenden, um zu bestätigen, ob Sie auf den Docker-Postgres-Container zugreifen können:

    telnet IP_ADDRESS 5432

57
stack.it

Was ich unter Windows 10 mit Docker für Windows 1.12.6 (9655) erfolgreich gemacht habe, ist der Schritt wie folgt:

  1. Zieh die neuesten Postgres

    docker pull postgres:latest

  2. führe den Postgres-Container aus: 

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

  3. Dann installierte die neueste Version von pgAdmin4 von der Website __. pgadmin

  4. Führen Sie pgAdmin 4 create new server aus und geben Sie die folgenden Befehle ein: __.Host: 127.0.0.1 Port: 5432 Benutzername: Benutzer Kennwort: Kennwort123

  5. Dann ist alles in Ordnung, verbinden Sie sich mit der Docker-Postgres-Instanz.
30
Maosheng Wang

Alternativ können Sie Postgres und Pgadmin in einer docker-compose-Datei kombinieren und sich als Benutzer [email protected], pwd: admin anmelden. Verwenden Sie zum Hinzufügen des Posgres-Servers den Hostnamen postgres, 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

Sie müssen den Postgres-Port im Container für Ihr lokales System verfügbar machen. Führen Sie dazu Ihren Container so aus:

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

wenn Sie sich mit Ihrem GUI-Client oder Ihrer CLI verbinden, stellen Sie sicher, dass Sie die IP-Adresse und nicht localhost verwenden, auch wenn Ihre IP-Adresse die localhost-IP-Adresse ist.

docker ps würde Ihnen die IP-Adresse Ihres Postgres-Containers geben.

4
meij

Wenn pgAdmin in demselben Ubuntu-Host/Gast ausgeführt werden soll, müssen Sie den Postgres-Container verknüpfen, damit er durch einen Namen aufgelöst werden kann.

1. Führe einen Postgres-Container aus:

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

2. Führen Sie den pgAdmin-Container aus:

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

3. Wenn Sie nun einen neuen Server in der phAdmin-Web-App hinzufügen, verwenden Sie some-postgres als Servernamen

Beachten Sie den --link some-postgres beim Aufruf des pgAdmin. Dieser Befehl macht den Postgres-Container für den PgAdmin-Container sichtbar.

4
Aleksandr Makov

Das habe ich getan

für Postgres

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

für pgadmin

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

Verbindungszeichenfolge für pgadmin

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

Es funktioniert gut!!!!!

3
thavaamm

Die Lösung, die ich für mich ausprobiert und bearbeitet habe, bestand darin, eine Docker-Compose-Datei zu erstellen, in der Postgress und pgadmin als Services enthalten waren. Für weitere Details: pgadmin mit Postgres im Docker verbinden

0
Andrei Bacescu

Ich habe dies in die Docker-Yaml-Datei aufgenommen, um die Datenbank und pgAdmin zu erhalten:

database:
    image: postgres:10.4-Alpine
    container_name: kafka-nodejs-example-database
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    expose:
      - "5432"
    ports:
      - 8000:5432
    volumes:
      - ./services/database/schema.sql:/docker-entrypoint-initdb.d/1-schema.sql
      - ./services/database/seed.sql:/docker-entrypoint-initdb.d/2-seed.sql
  pgadmin:
    image: dpage/pgadmin4
    ports:
      - 5454:5454/tcp
    environment:
      - [email protected]
      - PGADMIN_DEFAULT_PASSWORD=postgres
      - PGADMIN_LISTEN_PORT=5454

Der postgres-Benutzername ist alphaone und das Passwort ist xxxxxxxxxxx.

Mach ein docker ps um die Container ID zu erhalten und dann docker inspect <dockerContainerId> | grep IPAddress

z.B: docker inspect 2f50fabe8a87 | grep IPAddress

Fügen Sie die IP-Adresse in pgAdmin und die in docker verwendeten Datenbankanmeldeinformationen ein:

pgAdmin

0
Afshin Ghazi