初学者がDocker composeでPostgreSQLとpdAdmin4の環境を構築する


概要

初学者がDocker composeを使って、PostgreSQLとpgAdmin4の環境を構築しました。とりあえず作成した環境なので、ボリュームのマウントなどは行っていません。

※Dockerのインストール等は既に完了しています。

docker-compose.ymlを作成

docker-compose.yml

version: '3'

services:
  db:
    image: postgres
    container_name: pg-docker
    ports:
      -  '5432:5432'
    environment:
        - 'POSTGRES_USER=postgres'
        - 'POSTGRES_PASSWORD=postgres'
        - 'POSTGRES_DB=pg_db'

  pgadmin4:
    image: dpage/pgadmin4
    container_name: pgadmin4
    ports:
      - '80:80'
    environment:
      - '[email protected]'
      - 'PGADMIN_DEFAULT_PASSWORD=pga4_pw'

docker-compose.ymlを実行

デタッチモード: -dでdocker-composeを実行します。docker-compose upでbuildとrunが同時にできるので便利です。

$ docker-compose.yml up -d

コンテナの状態を確認

StateがUpになっていることを確認します。

$ docker-compose ps
  Name                Command              State              Ports
------------------------------------------------------------------------------
postgres   docker-entrypoint.sh postgres   Up      0.0.0.0:5432->5432/tcp
pgadmin4   /entrypoint.sh                  Up      443/tcp, 0.0.0.0:80->80/tcp

自分のIPアドレスを確認

色々な方法があると思いますが、とりあえず私はシステム環境設定からネットワークを開き、IPアドレスを確認しました。

ブラウザからpdAdmin4にアクセス

ブラウザを開き、IPアドレス:80にアクセスします(80番ポートは、docker-compose.ymlで設定)。タイプミスなどが無ければ、pdAdmin4のトップページが表示されると思います。

ログインの情報はdocker-compose.ymlのpgadmin4のenvironmentに記述した内容を入力します。

サーバー(postgre)に接続

ログインが完了したら、右側のメニューからServersを右クリックし、Createにマウスポインターを合わせ、Server...を選択します。

Create-Serverウィンドウが表示されるので、GeneralタブのNameにpd-dockerと入力します。一応、docker-compose.ymlで記述したcontainer-nameと合わせていますが、必要ないかもしれません。

Connectionタブをクリックし、HostはPCのIPアドレス、Portは5432を入力します。Maintenance databaseとUsernameとPasswordは、docker-compose.ymlのenvironmentで設定した値を入力します。

Saveボタンをクリックし、問題がなければ接続が完了します。

注意点

冒頭にも書きましたが、ボリュームをマウントしていないのでコンテナがUpでなくなると(消すと?)、データベースも消えてしまうので運用する際は注意が必要です。