PostgreSQL は Docker Hub に公式イメージがあり、データベースを手っ取り早く立てたいときや、コマンドを試すときにも便利に使える。 ただ、毎回どのようにオプションを指定して起動するのかを調べて解決しているので、オプションの意味を整理しておく意味で記事として書いておく。
環境
% sw_vers ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H114 % docker --version Docker version 20.10.2, build 2291f61
起動コマンド
% docker run --rm -d \ -p 6432:5432 \ -v postgres:/var/lib/postgresql/data \ postgres:latest
コマンド中のそれぞれの意味は以下のようになる。
--rm
- コンテナの停止時に、コンテナを削除する。
-d
- バックグラウンドで実行する。
- これを指定しないと、起動コマンドを実行したターミナルがコンテナのログを出し続ける状態になるため、DBへの接続などは別のターミナルから行う必要があり、若干面倒くさい。
-p 6432:5432
-v postgres:/var/lib/postgresql/data
postgres:latest
- latest(最新)バージョンの PostgreSQL を利用する。
- 利用できるバージョンは こちら から確認できる。この記事を書いている2021年3月10日時点では、最新バージョンは13.2。
接続する
psql を使って接続してみる。psql が入っていない場合は Homebrew でインストールする。
brew install psql
ではないので若干注意が必要。
% brew install postgresql (インストール時のメッセージは省略) % psql --version psql (PostgreSQL) 13.2
ポート番号を -p
、ユーザ名を -U
で指定して接続する。
% psql -h localhost -p 6432 -U postgres psql (13.2) Type "help" for help. postgres=#