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.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_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
のデータベースが表示され、接続が行えていることを確認できます。