Dockerとdocker-composeを使うには、お使いのマシンにインストールされている必要があります。まだインストールしていない場合は、Dockerのウェブサイトの手順に従ってインストールしてください。
MariaDBのDockerイメージを取得する
まず、Docker HubからMariaDBのイメージを取得します。このイメージには、MariaDBの実行に必要なものがすべて含まれています。
docker pull mariadb:latest
このコマンドで最新バージョンのMariaDBイメージがダウンロードされます。必要に応じて特定のバージョンを指定することもできます:
docker pull mariadb:10.5
Dockerネットワークを作成する(任意)
カスタムネットワークを作成すると、コンテナ間の通信がより良くなります。この手順は任意ですが、複数のコンテナを含む複雑な構成ではおすすめです。
docker network create mariadb_network
MariaDBコンテナを起動する
次に、取得したイメージを使ってMariaDBコンテナを起動しましょう。ローカルのポートをコンテナのポートにマッピングし、rootパスワードとデータベース名の環境変数を設定します。
docker run --name mariadb-container -d \
--network mariadb_network \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-e MYSQL_DATABASE=mydatabase \
-p 3306:3306 \
mariadb:latest
- –name mariadb-container: 参照しやすいようにコンテナに名前を付けます。
- -d: コンテナをデタッチモードで実行します。
- –network mariadb_network: コンテナをカスタムネットワークに接続します。
- -e MYSQL_ROOT_PASSWORD=my-secret-pw: MariaDBのrootパスワードを設定します。
- -e MYSQL_DATABASE=mydatabase: mydatabaseという名前のデータベースを作成します。
- -p 3306:3306: ホストのポート3306をコンテナのポート3306にマッピングします。
MariaDBコンテナの起動を確認する
次のコマンドで、MariaDBコンテナが起動しているか確認します:
docker ps
期待される出力:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123def456 mariadb:latest "docker-entrypoint.s…" 5 seconds ago Up 5 seconds 0.0.0.0:3306->3306/tcp mariadb-container
MariaDBコンテナに接続する
MariaDBコンテナが起動したら、MySQLクライアントで接続できます。ローカルにMySQLクライアントがインストールされている場合は、次のように接続します:
mysql -h 127.0.0.1 -P 3306 -u root -p
rootパスワード(my-secret-pw)を入力すると、MariaDBインスタンスに接続されます。
Docker Composeを使う
Docker Composeを使えば、シンプルな設定ファイルで複数コンテナの構成を管理できます。Docker ComposeでMariaDBをセットアップする方法は次のとおりです:
docker-compose.ymlファイルを作成する
プロジェクトのルートディレクトリにdocker-compose.ymlファイルを作成します。このファイルで、開発環境の一部として実行するコンテナを定義します。
version: '3.1'
services:
mariadb:
image: mariadb:latest
container_name: mariadb-compose
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
MYSQL_DATABASE: mydatabase
ports:
- "3306:3306"
networks:
- mariadb_network
networks:
mariadb_network:
driver: bridge
この例ではmariadb:latestイメージを使い、データベースを設定するためにいくつかの環境変数を指定しています。また、アプリケーションからデータベースに接続できるよう、MariaDBのデフォルトポート(3306)を公開しています。
Docker Composeを実行してコンテナを起動する:
docker-compose up -d
期待される出力:
Creating network "projectname_mariadb_network" with driver "bridge"
Creating mariadb-compose ... done
このコマンドで必要なイメージが取得され、コンテナがバックグラウンドで起動します。フォアグラウンドで起動するには-dを付けずに実行してください。コンテナの状態は次のコマンドで確認できます:
docker-compose ps
Beekeeper StudioでMariaDBに接続する
Beekeeper Studioは、MariaDBに対応したオープンソースのSQLエディタです。Beekeeper StudioでDocker上のMariaDBインスタンスに接続する方法は次のとおりです:
- Beekeeper Studioを開き、
New Connectionをクリックします。 - 接続タイプとしてMariaDBを選択します。
- 次の接続情報を入力します:
- ホスト: 127.0.0.1
- ポート: 3306
- ユーザー名: root
- パスワード: my-secret-pw
- データベース: mydatabase(任意)
Connectをクリックして接続します。
MariaDBデータベースの編集やクエリに使える、快適で使いやすいインターフェースが表示されます:
開発環境を管理する
MariaDBコンテナを停止するには:
docker stop mariadb-container
コンテナを再び起動するには:
docker start mariadb-container
コンテナを削除するには:
docker rm -f mariadb-container
まとめ
Dockerを使ってMariaDBの開発環境を構築すると、管理や再現が容易な堅牢な環境が手に入ります。Docker Composeを使えばスケーラビリティも加わり、小規模なプロジェクトから大規模な開発チームまで最適な選択肢となります。
こちらの記事もおすすめです:
Beekeeper Studioは無料のオープンソースMariaDB GUIです
Beekeeper Studioは、私が見つけた中で最高のMariaDB管理ツールです。多機能で使いやすく、便利なオプションもたくさんあります。まさに逸品です!開発チームの皆さん、おめでとうございます! - Nick
Beekeeper Studioは、高速で直感的、使いやすいMariaDBクライアントです。ほかにも多数のデータベースに対応しており、Windows、Mac、Linuxで快適に動作します。
MariaDBユーザーによるBeekeeper Studioの声
MariaDBに付属している(しかも無料の)HeidiSQLをずっと使ってきましたが、オートコンプリートが遅いかほぼ機能しないこと、そしてマウス操作が多いことに常に不満を感じていました。BeeKeeperはこうした不満を解消してくれます。テーブルデータのJSONフォーマットはとても便利です。
私の仕事ではMSSQL/Mariadb/Oracle/Postgres、sqliteを使い、レガシーコードから新規コードまですべてを担当していますが、ようやく必要なことをすべて1つでこなせるツールを見つけたと思います