zukucode
主にWEB関連の情報を技術メモとして発信しています。

Docker pgAdminを導入してPostgreSQLをGUIで管理する

Docker PostrgeSQLのコンテナを作成するPostgreSQLのコンテナを作成しました。

pgAdminのコンテナを作成して、PostgreSQLGUIで管理できるようにします。

pgAdminとは、MySQLphpMyAdminに相当する、PostgreSQL用のGUI管理ツールです。

今回は公式イメージをそのまま使用するため、独自のDockerfileの作成は不要です。

docker-compose.ymlの修正

pgAdminを起動するように以下を追記します。

pgAdminの設定は永続化したいので、pgadmindataという名前でボリュームを作成し、コンテナ内のデータと紐づけています。

環境変数のメールアドレスやパスワードは適宜変更してください。

ポートは5050でアクセスできるようにしています。

docker-compose.yml
version: "3.2"
services:
  db:
    build: ./docker/db
    environment:
      POSTGRES_USER: docker_user
      POSTGRES_PASSWORD: docker_pass
      POSTGRES_DB: docker_db
      PGDATA: /var/lib/postgresql/data/pgdata
      TZ: Asia/Tokyo
    volumes:
      - dbdata:/var/lib/postgresql/data
  pgadmin:
    image: dpage/pgadmin4:5.2
    volumes:
      - pgadmindata:/var/lib/pgadmin4/storage
    environment:
      PGADMIN_DEFAULT_EMAIL: root@example.com
      PGADMIN_DEFAULT_PASSWORD: root
      TZ: Asia/Tokyo
    depends_on:
      - db
    ports:
      - "5050:80"
volumes:
  dbdata:
  pgadmindata:

以上で設定は完了です。

動作確認

以下のコマンドで、コンテナを起動します。

$ docker compose up

コンテナを起動後、ブラウザで「http://localhost:5050」にアクセスすると、pgAdminのログイン画面が表示されます。

メールアドレスとパスワードに、docker-compose.ymlで設定したPGADMIN_DEFAULT_EMAILPGADMIN_DEFAULT_PASSWORDを入力してログインします。

データベースに接続

実際にPostgreSQLのデータベースに接続してみます。

トップページのAdd New Serverをクリックします。

pgAdminでDB接続.png

Nameには適当な接続名を入力します。

pgAdminでDB接続2.png

Connectionタブを表示し、以下を入力します。

Host name/address
PostgreSQLのコンテナ名を入力します。上記例の場合はdbになります。
Username
docker-compose.ymlで設定したPOSTGRES_USERを入力します。
Password
docker-compose.ymlで設定したPOSTGRES_PASSWORDを入力します。

以外の項目はデフォルトのままで大丈夫です。

pgAdminでDB接続3.png

Saveボタンをクリックすると、docker_dbのデータベースが表示され、接続が行えていることを確認できます。

pgAdminでDB接続4.png


関連記事