Docker pgAdminを導入してPostgreSQLをGUIで管理する
Docker PostrgeSQLのコンテナを作成するでPostgreSQLのコンテナを作成しました。
pgAdminのコンテナを作成して、PostgreSQLをGUIで管理できるようにします。
pgAdminとは、MySQLのphpMyAdminに相当する、PostgreSQL用のGUI管理ツールです。
今回は公式イメージをそのまま使用するため、独自のDockerfileの作成は不要です。
docker-compose.ymlの修正
pgAdminを起動するように以下を追記します。
pgAdminの設定は永続化したいので、pgadmindataという名前でボリュームを作成し、コンテナ内のデータと紐づけています。
環境変数のメールアドレスやパスワードは適宜変更してください。
ポートは5050でアクセスできるようにしています。
docker-compose.ymlversion: "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_EMAILとPGADMIN_DEFAULT_PASSWORDを入力してログインします。
データベースに接続
実際にPostgreSQLのデータベースに接続してみます。
トップページのAdd New Serverをクリックします。

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

Connectionタブを表示し、以下を入力します。
- Host name/address
PostgreSQLのコンテナ名を入力します。上記例の場合はdbになります。- Username
docker-compose.ymlで設定したPOSTGRES_USERを入力します。- Password
docker-compose.ymlで設定したPOSTGRES_PASSWORDを入力します。
以外の項目はデフォルトのままで大丈夫です。

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