PostgreSQL Docker環境を作成する

2019.5.23 (木)

PostgreSQL11をDockerで構築します。
環境はMacで

Docker version 18.09.2
docker-compose version 1.23.2
docker-machine version 0.16.1

Dockerfileの作成

適当なDockerのディレクトリを作成してDockerfileに以下を記述

FROM postgres:11.3
RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8
ENV LANG ja_JP.utf8

ビルドします。

$ docker build -t dev-postgres -f Dockerfile .

終わったらrunします。

docker run -it --name=my-db -p 5432:5432 -e POSTGRES_USER=dev -e POSTGRES_PASSWORD=secret -d dev-postgres

プロセスを確認します。

$ docker ps -a
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                         NAMES
32be7ced1804        dev-postgres            "docker-entrypoint.s…"   12 seconds ago      Up 12 seconds       0.0.0.0:5432->5432/tcp                        my-db

docker imagesコマンドでイメージの一覧を確認できます。

$ docker images

このコマンドでログインできます。

$ docker exec -it my-db psql -U dev
psql (11.1 (Debian 11.1-3.pgdg90+1))
"help" でヘルプを表示します。

dev=# 

終わり。
PostgreSQLのデータをGUIでいじる(macOS/Postico)

Dockerの停止・起動・削除

コンテナの停止

$ docker stop my-db(コンテナ名)

コンテナの起動

$ docker start my-db(コンテナ名)

コンテナにログイン

$ docker exec -it my-db(コンテナ名) bash

コンテナの削除

$ docker rm -f my-db(コンテナ名)

docker-composeでpostgresの環境を作る

もうちょっと突っ込んでpgadminなどのツールと一緒に構築したい場合です。
chorss/docker-pgadmin4などDockerhubで公開されているので、とても楽です。

イメージを落とします。

$ docker pull chorss/docker-pgadmin4

docker-composeでpostgresの環境を作る