今回はDockerを使用し、PostgreSQLを構築します。yamlファイルさえ作成すれば、初回の構築・起動は10秒くらい(インターネット回線速度やPC性能で変わります)、2回目以降の起動は0.5秒で完了します。
<Docker>最小構成!DBのみを構築する(PostgreSQL)
Docker Desktop起動
WindowsでDocker環境を構築する場合、「Docker Desktop」というアプリケーションが必要になります。こちらのサイトからダウンロードしてインストールしましょう。
Docker Desktopを起動すると次のような画面が表示されます(※バージョンによって見た目に違いがあるかもしれません)Docker Desktopを起動したら、いったんはそのままにしておいてください。
環境設定ファイルの作成
フォルダ構成
最小構成なのでcompose.yaml以外は省いています。
your root/
`-- compose.yaml
compose.yaml
Docker Composeで使用する環境構築コマンドを作成します。「compose.yaml」はテキストファイルで、Dockerで構築する環境の構成・動作を記載します。「docker-compose.yml」となっているのは古い記事で、現在の推奨は「compose.yaml」となります。基本的にはDocker環境を作成したいルートフォルダに配置します。細かい説明は次のファイル中にコメントで残してあります。
your root\compose.yaml
services:
#データベース
db:
#イメージ+バージョン ※latestを常に最新が適用されるが意図しない挙動になる可能性あり
image: postgres:16.1
#コンテナ名
container_name: postgresql-db
#設定
environment:
#データベース名(省略時は"postgres")
POSTGRES_DB: "postgresql-local"
#接続ユーザー名
POSTGRES_USER: "db-user"
#接続パスワード
POSTGRES_PASSWORD: "db-pass"
#ボリューム(永続化用)
volumes:
- db-store:/var/lib/postgresql/data
#ポート(外部ポート:内部ポート)
ports:
- 5432:5432
volumes:
db-store:
Docker起動
コマンドプロンプトを起動し、次のコマンドを実行します。コンテナ名「postgresql-db」、データベース名「postgresql-local」というデータベースが起動します。初回構築時のみPostgreSQLイメージの[pull]が発生します。
docker-compose up -d
[+] Running 15/15
✔ db 14 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 11.1s
✔ af107e978371 Pull complete 2.7s
✔ 85f7bca87921 Pull complete 2.8s
✔ 948f1cf08e62 Pull complete 2.9s
✔ 1a83ab26a0f0 Pull complete 3.0s
✔ 12bab27fafd3 Pull complete 3.4s
✔ 644cfda281a1 Pull complete 3.5s
✔ 03299695f2b9 Pull complete 3.5s
✔ 6e36bf1505f3 Pull complete 3.5s
✔ a35465a6a76a Pull complete 7.6s
✔ 83b026289c5c Pull complete 7.6s
✔ c158e73dda41 Pull complete 7.6s
✔ 264ae53c0064 Pull complete 7.6s
✔ 2e3c2c5fbb6d Pull complete 7.6s
✔ 08c5357f23b5 Pull complete 7.7s
[+] Running 3/3
✔ Network yourroot_default Created 0.0s
✔ Volume "yourroot_db-store" Created 0.0s
✔ Container postgresql-db Started
Docker Desktopでもコンテナが起動していることを確認できます。
コンテナ名:postgresql-db
データベース名:postgresql-local
データベース接続確認
PostgreSQLが起動したので、実際に接続して確認します。DBへの接続は好きなツールを使用してください。今回は「A5:SQL Mk-2」を使用します。
「compose.yaml」に記載しているDB接続情報を入力し接続します。もしユーザーIDやパスワードを変更して反映されていない場合、DockerDesktopのボリューム削除を試してみてください。
Docker停止
最後にDockerを停止しましょう。停止せずにDocker Desktopを終了したり、Windowsシャットダウンしたりすると、最悪の場合、データベースに関連するファイルが破損し、起動できなくなる可能性があります。
docker-compose down
[+] Running 2/2
✔ Container db Removed 0.6s
✔ Network dockerdbonly_default Removed 0.3s
コメント