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