WindowsのDockerでPostgreSQLを構築する(docker-compose使用)

システム開発Tips

概要(Dockerを採用する経緯)

開発用のPCを汚すのがいやで、データベースをVirtual Boxを使用して仮想WindowsマシンにPosgreSQLをインストールして構築していたのですが、Edgeの検証用のWindowsを流用していたのでライセンス切れになってしまいました。

横着したら駄目ですね。

そんなこともあり、折角なのでDockerを使用して再構築することにしました。

PostgreSQLが設定済みのDocker Imageの入手先

VMとかだとソフトウェアをインストールしないといけないのですが、すぐにでも使えちゃうよ版のPostgreSQLのDocker Imageが公式で配布されています。

postgres Docker Official Images を参照して下さい。
※今回行うdocker-compose絡みのこともOfficialに記載があるので、参照してみて下さい。

で、今回はですが、コマンドではなくdocker-composeを実行して、postgresのDocker コンテナを作成することにします。

docker-composeで起動する

公式にはrunコマンドで起動する方法が書いてありますが、ポートフォワードしてホストから繋げたかったりしたので、色々設定をまとめて書けるdocker-composeにしました。

docker-composeの設定

肝心の内容ですが、以下のように設定しました。

docker-compose.yml

# Use postgres/example user/password credentials
version: '3.1'

services:

  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: example
    ports:
      - "15432:5432"

docker-composeの起動コマンド

docker-composeコマンドで上記のymlを指定してコンテナを起動しましょう。

docker-compose -f docker-compose.yml up

Docker内で起動したPostgreSQLの接続情報

上記のdocker-composeコマンドでコンテナを起動したら以下の接続情報で繋がるようになります。

Key Value
ユーザ postgres
パスワード example
DB名 postgres
ホスト localhost
ポート番号 15432

Adminerを使用する場合のdocker-composeの設定

ちなみにAdminerを使って接続できるようにするには以下のように設定すればできます。

その場合は、WebからGUIで操作できるのでポートフォワードとかいらないかもですね。

phpMyAdminとか使ってる人には良いかもです。まぁ好みですが。。。

docker-compose_adminer.yml

# Use postgres/example user/password credentials
version: '3.1'

services:

  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: example
    ports:
      - "15432:5432"

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

Adminerの接続先URL

上記のdocker-composeコマンドでコンテナを起動したら、http://localhost:8080 でadminerに接続できます。

接続情報は上に書いたのと同じです。

あ、ただコンテナ内からのアクセスになるのでホスト名がlocalhostではなく、dbで接続するようになりますね。

Key Value
データベース種別 PostgreSQL
サーバ db
ユーザ名 postgres
パスワード example
データベース postgres

フォローお願いします!

コメント

タイトルとURLをコピーしました