データを含める: Docker で MariaDB を実行する

公開: 2022-10-25

MariaDB は、構造化クエリ言語 (SQL) を使用してデータ アクセスを提供する無料のデータベース サーバーです。 パスワード、ロールベースのアクセス制御など、データを保護するためのセキュリティ機能を提供します。

MariaDB をデプロイしてユーザーにデータ アクセスを許可するには、データベース サーバーをホストする必要があります。 クラウド プロバイダーを選択するか、マネージドまたは共有ホスティング サービスを使用できます。

この記事では、Docker コンテナーを使用して MariaDB を実行し、データベース サーバーを構成して実行し、それを WordPress Web サイトに接続する方法について説明します。

ドッカーとは?

Docker は、コンテナーと呼ばれる制御された環境でアプリケーションを実行できる無料の開発者ツールです。 コンテナーには、アプリケーション コード、依存関係、およびアプリを実行するための重要なシステム ツールが含まれています。 これにより、ソフトウェア開発ライフサイクル全体で堅牢なアプリケーションを提供できます。

通常、コンテナはオペレーティング システムをホストとして使用します。 これは、ホスト マシンのカーネルが、CPU、メモリ、ファイル システムなどのリソースへのアクセスを提供することを意味します。 その結果、仮想マシンのような従来の仮想化は必要ありません。 Docker を使用して MariaDB インスタンスを実行することには、いくつかの利点があります。

  • デジタルフットプリントが小さいため、システムリソースを効率的に使用できます。
  • 一貫性があり、開発者は最小限の変更で本番環境およびテスト展開でアプリを実行できます。
  • リソース共有のための柔軟なメカニズムを提供します。
  • スケーラブルです。1 つのホストで多数のコンテナーを実行できます。

Docker で MariaDB をデプロイする方法

このセクションでは、コンテナー化された環境を作成して、Docker を使用して MariaDB を実行します。 Docker が提供するコンテナ技術について学びます。 Docker は、ほとんどのバージョンの Windows、macOS、および Linux ディストリビューションで動作します。 このチュートリアルを進めるには、Windows 10/11、Ubuntu 20.04、または macOS X マシンが必要です。

1.Docker をインストールする

Docker の最も優れた機能の 1 つは、その移植性です。 ホストのオペレーティング システムを使用するため、テストおよび公開環境に最適です。 このセクションでは、3 つのオペレーティング システムに Docker をインストールする方法を説明します。

Ubuntu 20.04

まず、Ubuntu のパッケージ リストを更新します。

 sudo apt-get update

次に、HTTPS を介したオンライン リポジトリへのアクセスを許可します。

 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

ターミナルから docker をインストールします。
次に、Docker の GPG キーを追加します。

 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

次に、Docker のリポジトリを追加します。

 echo deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

次に、Ubuntu のパッケージを更新して、Docker のリポジトリを含めます。

 sudo apt-get update

最後に、Docker エンジンをインストールします。

 sudo apt-get install docker-ce

Debian や Fedora などの別の Linux ディストリビューションを使用している場合は、Docker の Linux へのインストールに関する公式ドキュメントに従ってください。

Windows10/11

Docker は、Windows Subsystem for Linux バージョン 2 (WSL 2) をバックエンドとして使用して、Windows 10 または 11 で使用できます。 次の手順を使用して、Docker をインストールします。

まず、Windows システムで Virtual Machine Platform 機能を有効にします。 これにより、WSL 2 をインストールし、仮想化された Linux インスタンスを Windows マシンにインストールして実行できます。

次に、WSL をインストールします。

次に、Microsoft Store にアクセスして Ubuntu 20.04 をダウンロードします。

最後に、Docker Desktop for Windows をダウンロードします。 ダウンロードしたファイルを開いて、インストール プロセスを開始します。

インストール後、タスクバーから「Docker デスクトップ」を検索して開きます。

(注: Docker コマンドを使用するには、ターミナルとして PowerShell を使用する必要があります。)

macOS X

Docker は、Apple App Store から macOS マシンで入手できます。 Intel チップと Apple チップの両方を対象とする 2 つのインストーラーが利用可能です。

まず、上記のリンクのいずれかから適切なインストーラーをダウンロードします。 次に、ダウンロードした.dmgファイルをダブルクリックして開きます。

次に、Docker アイコンをApplicationsフォルダーにドラッグ アンド ドロップします。

ここで、 Applicationsフォルダーから Docker アプリを開き、プロンプトに従って構成を完了します。

インストール プロセスが完了したら、デスクトップ ステータス バーの Docker アイコンをダブルクリックして開きます。

デフォルトのターミナルを使用して Docker コマンドを実行します。

2.MariaDB イメージをダウンロードする

Docker イメージは、Docker コンテナーを作成するためのコマンドと構成のコレクションを提供します。 アプリケーションの実行に必要なすべてをインストールする責任があります。 Docker Hub から MariaDB 公式イメージを見つけることができます。

Docker Hub から MariaDB のイメージをダウンロードするには、 docker pullコマンドを使用する必要があります。

 docker pull mariadb

次のコマンドを実行して、ダウンロードした Docker イメージのリストを表示することもできます。

 docker images

これはコマンド出力です:

Docker イメージの一覧表示。
Docker イメージの一覧表示。

3.コンテナを作成する

コンテナーは、プロセスまたはプログラムの実行に必要なすべてのコード、依存関係、およびシステム ツールを備えたソフトウェア ユニットです。 前にダウンロードしたイメージを使用して、MariaDB コンテナーを作成します。

 docker create mariadb --name mariadb-wp -i –t

これにより、 mariadb-wpという MariaDB コンテナーが作成されます。 –iフラグは対話型セッションを許可し、 –tオプションは疑似端末を作成します。 公式ドキュメントには、利用可能なすべての変数に関する情報が記載されています。

4.コンテナの実行、一時停止、および停止

Docker は、構成可能な環境の柔軟性を開発者に提供します。 このセクションでは、環境変数を使用して MariaDB のコンテナーを構成し、コンテナーの特定のシステム プロパティを設定します。

MariaDB には、データベース名、パスワード、データベース ユーザーなど、設定できる多くの変数があります。 サポートされている環境変数のより広範なリストについては、MariaDB に関する Docker のドキュメントを参照してください。

 docker run -d --name mariadb-wp -p 3306:3306 -v '/path/on/host/:/var/lib/mysql' -e "MARIADB_ROOT_PASSWORD=" -e "MARIADB_DATABASE=wordpress" -e "MARIADB_USER=wordpress" -e "MARIADB_PASSWORD=" mariadb

上記のコマンドは、MariaDB のルート パスワード、データベース ユーザー、および関連付けられたパスワードを構成します。 It then runs MariaDB on port 3306. 次のコマンドを使用して、コンテナーのアプリケーションの実行を一時停止することができます。

 docker pause mariadb-wp

最後に、次のコマンドを使用して、コンテナー内で実行されているアプリケーションを停止することもできます。

 docker stop mariadb-wp

5.コンテナ化された MariaDB を WordPress サイトに接続する

ここで、MariaDB を外部の WordPress Web サイトに接続する必要があります。 WordPress ウェブサイトをローカルで作成する方法については、こちらをご覧ください。

WordPress Web サイトのルート ディレクトリで、コード エディターでwp-config.phpファイルを開きます。 以下に示すように、データベースの変数を定義するコード セクションを見つけて編集します。 MariaDB コンテナーを作成するときは、必ずデータベース名、パスワード、およびポート番号を使用してください。

 define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', ''); define('DB_HOST', 'http://localhost:3306');

次に、WordPress ウェブサイトのデータベース ダンプをコンテナー化された MariaDB にインポートする必要があります。 まず、Web サイトの現在のデータベースをエクスポートしたことを確認します。 詳細については、MySQL データベース バックアップのチュートリアルをご覧ください。

データベースをエクスポートしたら、コンテナー内にデータベース ダンプをインストールします。

 docker exec -i mariadb-wp sh -c 'exec mysql -u root -p "$MARIADB_ROOT_PASSWORD" < /some/path/on/your/host/all-databases.sql'

docker execコマンドを使用すると、開発者はコンテナー内でシェル コマンドを実行できます。 上記のコマンドでエクスポートされたファイルを使用して、データベースを MariaDB にインポートしました。

6. WordPress サイトに新しい投稿を追加する

WordPress 管理者アカウントを使用してサンプル投稿を作成し、この統合をテストします。

まず、WordPress にログインし、[投稿] > [新規追加] をクリックします。 以下に示すように詳細を入力し、 [公開] をクリックします。 投稿を作成したら、[投稿を表示] をクリックして、新しく追加された投稿を表示します。

WordPress Gutenberg エディターで新しい投稿を追加します。
WordPress エディターで新しい投稿を追加します。

それだけです。

7. DevKinsta を使用した MariaDB と Docker

Kinsta の無料アプリケーションである DevKinsta を使用すると、開発者はコンテナ化された WordPress サイトを効率的に作成できます。 アプリは Docker を使用して、PHP バージョン、データベース サーバー、および Web サーバーを構成します。 DevKinsta アプリは、macOS、Windows、および Ubuntu/Linux を使用する開発者をサポートします。

開始するには、ローカル マシンで DevKinsta をダウンロード、インストール、起動します。 このアプリには、新しい WordPress サイトを作成する、Kinsta から既存のサイトをインポートする、またはカスタム サイトを作成するという 3 つのオプションがあります。

DevKinstaの新しい新規作成サイト画面。
DevKinstaの新しい新規作成サイト画面。

新しい WordPress サイトの作成は、簡単なフォームに入力して [サイトの作成] をクリックするだけで簡単に作成できます。

DevKinstaの新しいWordPressサイト作成画面。
DevKinstaの新しいWordPressサイト作成画面。

おめでとうございます — これで、DevKinsta を使用してコンテナー化された WordPress Web サイトが作成されました!

概要

Docker は、MariaDB のようなデータベース サーバーを実行するソフトウェアをコンテナー化するための、開発者にとって使いやすいツールです。 その最小限の環境は、機能を犠牲にすることなくシステム リソースの効率を維持するのに役立ちます。

このチュートリアルでは、Docker をインストールし、MariaDB をセットアップし、WordPress サイトをコンテナー化された MariaDB データベースに接続する方法を説明しました。 さらに、DevKinsta を使用して完全にコンテナ化された WordPress Web サイトを作成する方法を学びました。

WordPress サイトの作成とその多数のホスティング ソリューションについては、他にも探索すべきことがたくさんあります。 サイト管理がいかに簡単かを知りたい場合は、Kinsta のマネージド WordPress ホスティングが役に立ちます。