PostgreSQL を docker 上で動かしていろいろ楽したい

いろんなバージョンを作っては消ししたい

色々なバージョンの PostgreSQL を立てては捨てているので docker が便利。公式のやつを使おう。

postgres - Docker Hub

公式の解説があったがこれは上使ってないな。

PostgreSQL の Docker 化 — Docker-docs-ja 17.06 ドキュメント

client

psql は入れておきましょう

$ sudo apt install postgresql-client-12

適当に立てる、消す場合

from とりあえず Docker で PostgreSQL を動かす手順 - Qiita

alpine はシンプルな linux index | Alpine Linux

$ docker run --rm -d \
    -p 15432:5432 \
    -v postgres-tmp:/var/lib/postgresql/data \
    -e POSTGRES_HOST_AUTH_METHOD=trust \
    postgres:12-alpine

postgresql.conf も設定する場合

$ docker run -d --name some-postgres -v "$PWD/my-postgres.conf":/etc/postgresql/postgresql.conf -e POSTGRES_PASSWORD=mysecretpassword postgres -c 'config_file=/etc/postgresql/postgresql.conf'

接続

trust 指定しているのでパスワード無し

$ psql -h localhost -p 15432 -U postgres

今動いてるやつ一覧

$ docker ps

コンテナIDをゲットしたら下記でさよなら

正直適当

$ docker rm -f <コンテナID>

docker compose でちょっと丁寧に

from Docker で作る postgres 環境 | Crudzoo

docker file

FROM postgres:12-alpine

docker-compose.yaml

version: '3'
services:
  db:
    build: .
    ports:
      - 15432:5432
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DB: testdb

postgresql.conf

起動、停止

$ ls
Dockerfile  docker-compose.yaml

起動

docker-compose up -d

接続

psql -h localhost -p 15432 -U postgres

停止

docker-compose down