今回はDockerを使用し、MariaDBを構築します。yamlファイルさえ作成すれば、初回の構築・起動は40秒台、2回目以降の起動は0.5秒で完了します。
<Docker>最小構成!DBのみを構築する(MariaDB)
Docker Desktop起動
WindowsでDocker環境を構築する場合、「Docker Desktop」というアプリケーションが必要になります。こちらのサイトからダウンロードしてインストールしましょう。
Docker Desktopを起動すると次のような画面が表示されます(※バージョンによって見た目に違いがあるかもしれません)Docker Desktopを起動したら、いったんはそのままにしておいてください。
環境設定ファイルの作成
フォルダ構成
your root/
|-- compose.yaml
`-- db/
|-- cnf/
| `-- db.conf
|-- data/
`-- sql/
`-- init.sql
compose.yaml
Docker Composeで使用する環境構築コマンドを作成します。「compose.yaml」はテキストファイルで、Dockerで構築する環境の構成・動作を記載します。「docker-compose.yml」となっているのは古い記事で、現在の推奨は「compose.yaml」となります。基本的にはDocker環境を作成したいルートフォルダに配置します。細かい説明は次のファイル中にコメントで残してあります。
your root\compose.yaml
services:
#データベース
db:
#イメージ+バージョン ※latestを常に最新が適用されるが意図しない挙動になる可能性あり
image: mariadb:11.0
#コンテナ名
container_name: db
#設定
environment:
#rootスーパーユーザーのパスワード
MARIADB_ROOT_PASSWORD: root
#データベース名
MARIADB_DATABASE: database
#接続ユーザー名
MARIADB_USER: db-user
#接続パスワード
MARIADB_PASSWORD: db-pass
#タイムゾーン
TZ: 'Asia/Tokyo'
volumes:
#永続化(ローカルフォルダ:コンテナフォルダ) ※永続化することでコンテナ停止してもデータが消失しない
- ./db/data:/var/lib/mysql
#DB初期設定(フォルダ内の拡張子.cnfのファイルをアルファベット順に実行)
#ボリュームが永続化されており、2回目以降の起動の場合は実行されない
- ./db/cnf:/etc/mysql/conf.d
#コンテナ起動時の実行SQL(フォルダ内の拡張子.sh/.sql/.sql.gzのファイルをアルファベット順に実行)
#ボリュームが永続化されており、2回目以降の起動の場合は実行されない
- ./db/sql:/docker-entrypoint-initdb.d
#ポート(外部ポート:内部ポート)
ports:
- 3306:3306
db.cnf
MariaDBの設定ファイルです。ファイル名は任意に付けることができ、ファイル名のアルファベット順に実行されます。文字コードの指定のみ記載してみました。
your root\db\cnf\db.cnf
[mysqld]
character_set_server = utf8mb4
collation-server = utf8mb4_unicode_ci
[mysql]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
init.sql
コンテナ起動時に実行したいSQLを記述します。ファイル名は任意に付けることができ、ファイル名(拡張子.sh/.sql/.sql.gz)のアルファベット順に実行されます。次の例では「test」テーブルを作成し、1行レコードを挿入しています。SQLの実行が不要な場合、ファイルを配置しなければOKです。
your root\db\sql\init.sql
CREATE TABLE `test` (
`code` varchar(5) DEFAULT NULL
);
INSERT INTO test values('123');
Docker起動
コマンドプロンプトを起動し、次のコマンドを実行します。コンテナ名「db」というデータベースが起動したことを確認できます。初回構築時のみ[pull]が発生します。
docker-compose up -d
[+] Running 9/9
✔ db 8 layers [⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 10.1s
✔ 44ba2882f8eb Pull complete 2.5s
✔ 08b8223d0cb6 Pull complete 2.5s
✔ ef2696fb09d6 Pull complete 3.1s
✔ 6ae32c298a0d Pull complete 3.1s
✔ 737007b25ac8 Pull complete 3.1s
✔ 0dbe827889a7 Pull complete 6.7s
✔ c66389b6a4b9 Pull complete 6.7s
✔ a0724dc11b95 Pull complete 6.7s
[+] Running 2/2
✔ Network yourroot_default Created 0.0s
✔ Container db Started 2.1s
Docker Desktopでもコンテナが起動していることを確認できます。
Dockerを起動するとdataフォルダ内にファイルが沢山作成されており、これらがDBの実体となります。
データベース接続確認
MariaDBが起動したので、実際に接続して確認します。DBへの接続は好きなツールを使用してください。今回は「A5:SQL Mk-2」を使用します。
「compose.yaml」に記載しているDB接続情報を入力します。
接続が成功するとデータベースが作成されていることを確認できます。
Docker停止
最後にDockerを停止しましょう。停止せずにDocker Desktopを終了したり、Windowsシャットダウンしたりすると、最悪の場合、データベースに関連するファイルが破損し、起動できなくなる可能性があります。
docker-compose down
[+] Running 2/2
✔ Container db Removed 0.6s
✔ Network dockerdbonly_default Removed 0.3s
コメント