オープンソース系の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で簡単に環境が手に入るのでお手軽です。

コメント