web-dev-qa-db-ja.com

docker postgres pgadminローカル接続

Nginx、php、postgresでUbuntuイメージを作成しました。

現在のイメージのpostgresデータベースをローカルマシンにあるpgadminに接続したい。

Dockerインスペクタを使用して、イメージIPを使用してローカルpgadminとの接続を試みましたが、あまり成功しませんでした。また、ローカルでいくつかのポートを設定して、接続が機能するようにしました。

56
Rigoxls

なぜ人々が「その質問に答えることができないようだ」と感じるのかはわからない有効な質問です。

だから、ここにあなたがやろうとしていることをする方法があります:

  1. Docker Hubからpostgresイメージをプルします

    docker pull postgres:latest

  2. 以下のコマンドを使用してコンテナを実行します

    docker run -p 5432:5432 postgres

  3. Dockerのinspectコマンドを使用してIPを見つける

  4. そのIP、PORT、ユーザー名、およびパスワードを使用して、PGADMINで接続します

  5. また、以下のような簡単なtelnetを実行して、docker postgresコンテナーにアクセスできるかどうかを確認できます。

    telnet IP_ADDRESS 5432

65
stack.it

Windows 1.12.6(9655)のdockerを実行しているwindows 10で成功した場合、ステップは次のようになります。

  1. 最新のpostgresを取得する

    docker pull postgres:latest

  2. postgresコンテナーを実行します。

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

  3. 次に、 pgadmin Webサイト からpgAdmin4の最新バージョンをインストールしました

  4. PgAdmin 4を実行して新しいサーバーを作成し、次のように入力します。ホスト:127.0.0.1ポート:5432ユーザー名:ユーザーパスワード:password123

  5. その後、すべては問題ありません。dockerpostgresインスタンスの成功に接続します。
39
Maosheng Wang

または、PostgresとPgadminを1つのdocker-composeファイルに結合し、ユーザー[email protected]、pwd:adminとしてログインできます。 Posgresサーバーを追加するには、ホスト名postgres、ポート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:
19
Erik Vullings

PgAdminを同じUbuntuホスト/ゲストで実行する場合は、postgresコンテナーをリンクする必要があるため、名前で解決できます。

1。postgresコンテナを実行します:

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

2。pgAdminコンテナーの実行:

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

。phAdmin Webアプリで新しいサーバーを追加する場合、サーバー名としてsome-postgresを使用

PgAdminを起動したときに--link some-postgresに注意してください。このコマンドは、pgAdminコンテナーからpostgresコンテナーを表示できるようにします。

10
Aleksandr Makov

これは私がやったことです

postgres用

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

pgadminの

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

Pgadminの接続文字列

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

うまくいく!!!!!

コンテナのpostgresポートをローカルシステムに公開する必要があります。これを行うには、次のようにコンテナを実行します。

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

gUIクライアントまたはCLIで接続するときは、たとえIPアドレスがローカルホストのIPアドレスであっても、ローカルホストではなくIPアドレスを使用するようにしてください。

docker psは、postgresコンテナが存在するIPアドレスを提供します。

4
meij

私が試し、働いた解決策は、postgressとpgadminをサービスとして含めたdocker composeファイルを作成することでした。詳細: pgadminをdockerのpostgresに接続

0
Andrei Bacescu

これをdocker yamlファイルに含めて、データベースとpgAdminを取得しました。

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

Postgresユーザー名はalphaone、パスワードはxxxxxxxxxxxです。

docker psコンテナIDを取得してからdocker inspect <dockerContainerId> | grep IPAddress

例:docker inspect 2f50fabe8a87 | grep IPAddress

IpアドレスをpgAdminに挿入し、dockerで使用されるデータベース資格情報を挿入します。

pgAdmin

0
Afshin Ghazi