PostgreSQLをMacのローカル環境でDockerコンテナで起動する
実行環境
- macOS Mojave 10.14.6
- Docker for Mac 2.1.0.4
PostgreSQLのコンテナを作成
ターミナルで以下のようにコマンドを実行する。以下の例ではPostgreSQL10のDockerイメージを使用している。
$ docker run --name PostgreSQL10 -v /Users/xxxxx/work/DockerTest/data:/var/lib/postgresql/data -p 5555:5432 -e POSTGRES_PASSWORD=postgres -d postgres:10
オプションの意味は以下の通り。
- –name コンテナ名を指定する。
- -v ボリュームマウントをを指定する。-v {ホスト側のパス}}:{コンテナ内のパス}で指定する。 PostgreSQLはデフォルトで /var/lib/postgresql/data にデータを格納する。PostgresSQLのデータを保存するためのホスト側のパスを指定する。
- -p コンテナのポートをホストに公開する。上記にコマンドの場合、localhostの5555ポートがコンテナの5432にバインドされる。
- -e 環境変数設定を指定する。環境変数POSTGRES_PASSWORDでデフォルトのスーパーユーザのpostgresのパスワードを指定する。
- -d コンテナをバックグラウンドで動作させる。
作成したDockerコンテナの確認
以下のコマンドでコンテナ一覧を確認できる
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eaed715f5fa3 postgres:10 "docker-entrypoint.s…" 5 months ago Up 26 hours 0.0.0.0:5555->5432/tcp PostgreSQL10
コンテナ起動とpsqlによる接続
以下のコマンドでコンテナ起動とPostgreSQLへpsqlによる接続ができる。
# コンテナ起動
$ docker start PostgreSQL10
# psqlでログイン
$ docker exec -it PostgreSQL10 psql -U postgres