このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Docker入門】MariaDBコンテナの構築
ここでは、MariaDBコンテナを構築していきます。
まず、MariaDBとは何かを簡単に解説します。
MariaDBとは
MariaDBは、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。MySQLの派生として開発されましたが、MySQLとの互換性を保ちつつも、性能の向上や機能の拡張を行っています。MariaDBは、高い信頼性と拡張性、そしてコミュニティの活発さが特徴です。MariaDBは、ウェブアプリケーションやビジネスアプリケーションなど、さまざまな用途で利用されています。
MariaDBのサイト:https://mariadb.org/
Docker HubのMariaDB情報を確認する
MariaDBコンテナを作成していきますが、ベースイメージとしてMariaDBイメージを使用します。MariaDBイメージからコンテナを作成する際に環境変数を定義しておく必要があります。あらかじめ、どのような環境変数を定義しておく必要があるのかを、Docker Hub上のMariaDBのページなどで確認しておきます。
Docker HubののMariaDBのURL:https://hub.docker.com/_/mariadb
MariaDBの主な環境変数
以下は、MariaDBコンテナの作成時に定義する一般的な環境変数の一部です。これらの環境変数は、コンテナの動作や設定をカスタマイズするために使用されます。
環境変数 | 説明 |
---|---|
MARIADB_ROOT_PASSWORD | ルートユーザーのパスワードを設定します。 |
MARIADB_DATABASE | 初期データベースを作成します。 |
MARIADB_USER | 初期ユーザーを作成します。 |
MARIADB_PASSWORD | 初期ユーザーのパスワードを設定します。 |
これらの環境変数を利用することで、MariaDBコンテナの挙動や設定を柔軟に制御することができます。実際の運用環境に合わせて、適切な値を設定して利用します。
環境変数はコンテナへのパラメータの受け渡しに使う
環境変数は、コンテナ内のプロセスに渡すパラメータや設定を指定するために使用されます。コンテナ内のアプリケーションが実行される環境に関する情報を動的に設定したり、アプリケーションの動作をカスタマイズするのに役立ちます。
具体的には、Dockerコンテナを起動する際に、「docker run
」 コマンドやDocker Composeファイルで環境変数を指定することができます。コンテナ内のアプリケーションは、これらの環境変数を参照して、必要な設定や動作を行います。
例えば、データベースの接続情報や認証情報を環境変数として渡すことができます。また、アプリケーションの動作モードやロギングレベルなどの設定も環境変数で指定することができます。
環境変数の利点は、コンテナの起動時に設定を変更できることや、センシティブな情報(例: パスワード)を安全に扱うことができる点です。また、複数のコンテナ間で同じ設定を共有することができます。
環境変数は、コンテナの柔軟性と移植性を高めるための重要な仕組みとして、広く利用されています。
Docker Composeファイルの作成
ディレクトリの作成と移動
Docker Composeでコンテナを作成するには、「compose.yaml」ファイルが必要になります。
デフォルトでは、カレントディレクトリにある「compose.yaml」ファイルが読み込まれるため、作業ディレクトリに移動しておきます。
・「cd desktop/docker」コマンドを実行します。
PS C:\Users\joeac> cd desktop/docker
PS C:\Users\joeac\Desktop\docker>
「compose.yaml」ファイルを保存する「mariadb」ディレクトリを作成して、作成したディレクトリに移動します。次のコマンドを実行します。
- 「mkdir mariadb」コマンド
- 「cd mariadb」コマンド
PS C:\Users\joeac\Desktop\docker> mkdir mariadb
Directory: C:\Users\joeac\Desktop\docker
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2024/04/02 23:51 mariadb
PS C:\Users\joeac\Desktop\docker> cd mariadb
PS C:\Users\joeac\Desktop\docker\mariadb>
VSCodeの起動
VSCodeで「compose.yaml」ファイルを作成します。
・「code compose.yaml」コマンドを実行します。
PS C:\Users\joeac\Desktop\docker\apache> code compose.yaml
VSCodeが起動します。
「compose.yaml」ファイルの編集
・「compose.yaml」ファイルを以下のように編集して保存します。
services:
testdb:
image: mariadb:10.8
environment:
MARIADB_ROOT_PASSWORD: root-pass
MARIADB_DATABASE: test-db
MARIADB_USER: test-user
MARIADB_PASSWORD: user-pass
volumes:
- db-data:/var/lib/mysql
volumes:
db-data:
このComposeファイルでは、mariadb
という名前のサービスを定義しています。このサービスは、MariaDBの公式イメージのバージョン10.8を使用しています。また、環境変数を使用して、ルートユーザーのパスワード、データベース名、ユーザー名、およびユーザーのパスワードを指定しています。さらに、volumes
を使用して、永続化されたボリューム 「db-data
」 を 「/var/lib/mysql
」にマウントしています。
コンテナの作成と実行
・「docker compose up -d」コマンドを実行します。
このコマンドは、「compose.yaml」ファイルを配置した場所で実行する必要があります。
PS C:\Users\joeac\Desktop\docker\mariadb> docker compose up -d
[+] Running 9/9
✔ testdb 8 layers [⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 8.9s
✔ d1669123f281 Pull complete 1.3s
✔ 7942299fe584 Pull complete 0.8s
✔ ca116927bbe1 Pull complete 1.2s
✔ 9c0f0b5293ed Pull complete 1.7s
✔ ee0988afd61a Pull complete 2.0s
✔ 82d81fccd49d Pull complete 3.4s
✔ 7e361405ea73 Pull complete 2.4s
✔ be365127aa3f Pull complete 2.7s
[+] Building 0.0s (0/0) docker:default
✔ Network mariadb_default Created 0.0s
✔ Volume "mariadb_db-data" Created 0.0s
✔ Container mariadb-testdb-1 Started 0.2s
「Container mariadb-testdb-1 Started」というログが、表示されたら、コンテナが作成されて実行されています。
引き続き「コンテナ内でコマンドを実行する方法」で、この作成したMariaDBに接続していきます。