今回は、docker-composeを使って、Postgresを動かす方法を解説していきたいと思います。
Macbookにdockerをインストールがまだの方は以下の記事をご覧ください。
MacbookにDockerを入れてNginxを動かしてみよう

docker-composeを使うことで、環境構築する際の設定やインストール物がコード化され、
ポータブルになる + 再利用性が向上する、というメリットがあります。
是非、使いこなせるようになってください。
Macbook + docker-composeでpostgresを動かす
- Dockerfileを作成
- docker-compose.ymlを作成
- docker-composeコマンドで起動
1.Dockerfileを作成
まずは、インストールしたいミドルウェアを、Dockerfileというファイルに定義していきましょう。
FROM postgres:12
ENV TZ Asia/Tokyo
ENV LANG ja_JP.UTF-8
ENV LC_ALL "en_US.UTF-8"
ENV LC_TYPE "en_US.UTF-8"
Postgresのバージョンは12で指定しています。
2.docker-compose.ymlを作成
次に、docker-compose.ymlにdbの設定を書いていきましょう。
version: '3.1'
services:
db:
build:
context: .
dockerfile: postgres/Dockerfile
container_name: postgres
ports:
- 5432:5432
restart: always
environment:
POSTGRES_PASSWORD: example
最終的なフォルダ構造は以下のような形になりました。

3.docker-composeコマンドで起動
最後は、Macbookからdocker-composeコマンドで立ち上げてみましょう。
ターミナルを開き、「docker-compose.yml」があるフォルダまで移動しましょう。
$ cd [移動先]
移動できたら、docker-composeコマンドで起動させます。
docker-compose up -d --build
以下のようにダウンロードが始まれば成功です。
$ docker-compose up -d --build
=======
Creating network "postgres_default" with the default driver
Building db
Step 1/5 : FROM postgres:12
12: Pulling from library/postgres
f7ec5a41d630: Already exists
d073cd070242: Pull complete
03790957a916: Pull complete
b3776ac15dab: Pull complete
7144fd00aec4: Downloading [=========================================> ] 6.683MB/7.965MB
54f6491bd120: Download complete
247ab23c6036: Download complete
57800498c536: Download complete
47932702ce7d: Waiting
70be129efb70: Waiting
8193fe8d8b90: Waiting
e126805d9743: Waiting
7e4d1d793d9a: Waiting
141caceea48f: Waiting
完了したら、postgresが立ち上がっているか確認しましょう。
$ docker ps
postgresという名前でコンテナが立ち上がっていれば成功です。
ついでにdockerにログインしてpostgresにログインしてみましょう。
$ docker exec --user postgres -it $(docker ps -aqf "name=postgres") /bin/bash
上記コマンドで、postgresユーザーでdockerのコンテナ内にログインできます。
postgres@[CONTAINER ID]:/$ psql
psql (12.6 (Debian 12.6-1.pgdg100+1))
Type "help" for help.
postgres=#
psqlコマンドで、postgresにログインできました!

===============
以上、Macbook + docker-composeでpostgresを動かす方法を紹介してみました。
この情報が皆さんの人生のお役に立てれば幸いです。
エンジニアとして日本のITリテラシーを高めていきたいと共感して頂いた人は、是非このブログの拡散とyoutubeの方も見ていただけると嬉しいです。
記事を最後まで見ていただきありがとうございました。
執筆者: hiroエンジニア