【比較用】postgresqlとmariadbの立ち上げ【docker-composeで一発】

技術

オープンソース系のRDBMS、「mariadb」「postgresql」を手軽に立上げてみました。長々書いてますが、起動コマンド「docker-compose up -d」の一発でOK。

検証環境

  • windows10
    • 未検証ですがdocker-composeが動けばwindowsである必要はないはず
  • 対象データベース
    • mariadb
    • postgresql

docker環境の整備

chocolatey環境

※すでにchocolateyインストール済みの場合は飛ばしてください。

  • powershellを管理者モードで開く
    • 例:「Windowsキー」+「x」 → 「a」 → 「はい」を選択
  • powershell実行ポリシーの確認
 Get-ExecutionPolicy

ここで「Restricted」の場合は、ポリシー変更を入力、 「Restricted」 でなけれはインストールコマンドへ

  • ポリシー変更
Set-ExecutionPolicy AllSigned 
  • chocolateyインストールコマンド
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) 

dockerのインストール

  • chocolatyeからdocker-desctopをインストール
choco install docker-desktop -y

必要ファイルの準備

同じフォルダに以下2ファイルを準備します。

※githubから取得できるようにしました。

git clone https://github.com/taka-output-blog/oss-rdbms-docker-compose
  • Dockerfile
FROM alpine:latest
 RUN apk update && \
     apk add --no-cache \
         mariadb-client \
         postgresql-client \
  • docker-compose.yml
version: '2'
 services:
   mariadb:
     container_name: mariadb
     image: mariadb
     restart: always
     volumes:
       - mariadb:/var/lib/mysql
     environment:
       - MYSQL_ROOT_PASSWORD=root
 postgres:
     container_name: postgres
     image: postgres
     restart: always
     volumes:
       - postgres:/var/lib/postgresql/data
 db-clients:
     container_name: db-clients
     build: .
     restart: always
     links:
       - mariadb
       - postgres:postgresql
     stdin_open: true
     tty: true
     command: /bin/sh
 volumes:
   mariadb:
     driver: local
   postgres:
     driver: local

起動する(準備済みならコマンド一発)

  • powershellを立ち上げる
  • 該当フォルダへ移動
  • 立上げコマンドを実行
cd oss-rdbms-docker-compose 
docker-compose up -d

以下のようなメッセージが出ればOK

 Creating mariadb  … done
 Creating postgres … done
 Creating db-clients … done

接続確認

db-clientsというコンテナから両方のDBに接続できます

db-clientsコンテナに接続する

docker exec -it db-clients /bin/ash

下記のようにコマンド入力待ちになればOK.

mariadbへの接続を確認する

mysql -h mariadb -u root -p

パスワードは「root」にしてあります。※docker-compose.ymlに記載

postgresqlの確認を行いたいので、「exit」でmariadbから抜けます。

exit

postgresqlへの接続を確認する。

psql -h postgres -U postgres -d postgres

こちらも「exit」で抜けられます。

exit

さらにdockerから抜けるのも「exit」でOKです。

exit

立ち上げたサービスをとめる

docker-compose down

※あげたくなったら「起動する」をもう一度行うだけです。

まとめ

とにかく使ってみたいというレベルなら、dockerで簡単に環境が手に入るのでお手軽です。

技術
スポンサーリンク
スポンサーリンク
takaをフォローする
アフターファイブ改革

コメント

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