<Docker>最小構成!DB(PostgreSQL)のみを構築し、A5M2(A5:SQL Mk-2)で接続する

Docker

今回はDockerを使用し、PostgreSQLを構築します。yamlファイルさえ作成すれば、初回の構築・起動は10秒くらい(インターネット回線速度やPC性能で変わります)、2回目以降の起動は0.5秒で完了します。

<Docker>最小構成!DBのみを構築する(PostgreSQL)

この記事が対象とする環境
ホスト(HOST) ※実行マシン
Windows
Docker Desktop v4.22.1
ゲスト(GUEST)※Dockerコンテナ
PostgreSQL v16.1

Docker Desktop起動

WindowsでDocker環境を構築する場合、「Docker Desktop」というアプリケーションが必要になります。こちらのサイトからダウンロードしてインストールしましょう。

Docker Desktop
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today ...

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」を使用します。

A5:SQL Mk-2 - フリーのSQLクライアント/ER図作成ソフト (松原正和)

「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

札幌在住エンジニア。JavaやPHPやWordPressを中心とした記事が中心です。

【SE歴】四半世紀以上
【Backend】php / java(spring) / c# / AdobeFlex / c++ / VB / cobol
【Frontend】 vue.js / jquery他 / javascript / html / css
【DB】oracle / mysql / mariadb / sqlite
【infrastructure】aws / oracle / gcp
【license】aws(saa-c03) / oracle master / XML Master / Sun Certified Programmer for the Java 2 Platform 1.4

Nobelをフォローする
DockerPostgreSQL
Nobelをフォローする

コメント

タイトルとURLをコピーしました