管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

Dockerでお手軽PostgreSQL環境

ちょっとDBを使いたいというときに、一時的なPostgreSQLのDBをDockerで作る方法です。

検証環境

# 実行環境
PS C:\Users\hoge> docker --version
Docker version 20.10.8, build 3967b7d

一時的なDBを作成

PS C:\Users\hoge> docker run --rm -it -e POSTGRES_PASSWORD=password -p 35432:5432 postgres:12
データベースシステム内のファイルの所有者はユーザ"postgres"となります。
このユーザをサーバプロセスの所有者とする必要があります。
...

この場合、接続情報は以下となります。

ホスト:localhost(DBコンテナを稼働させている機器のIPアドレス)
ポート:35432
ユーザ名:postgres
パスワード:password

Ctrl-Cを押下したり、ウィンドウを閉じたりするとコンテナが破棄されるので、データは残りません。DB利用中はウィンドウを上げたままにする必要があります。

一時的なDBに接続

psqlもコンテナを利用します。

# psqlで接続
# コンテナ版のpsqlを利用する場合、localhostはpsqlコンテナ自身を指すことになるため、
# ホストはDBコンテナを稼働させている機器のIPアドレスとする
PS C:\Users\hoge> docker run --rm -it postgres:12 psql -h 192.168.0.XXX -p 35432 -U postgres
ユーザ root のパスワード: ←「password」
psql (12.8 (Debian 12.8-1.pgdg110+1))
"help"でヘルプを表示します。