運営:株式会社e2e

世界のWordPress最新情報を
届けるメディア

2021.12.21基礎知識

【初心者向け】Dockerとは?概要とWordPress環境を構築する方法

この記事を書いた人

wp.geek編集部

Web制作・システム開発で実績のある企業です。 WordPressに特化したチームがお客様の課題を解決します。

この著者の他の記事を見る >>

WordPressは、初心者でも気軽にWebサイトを構築・運用できることから、全世界のWebサイトのうち1/3以上が導入していると言われ、非常に人気です。

しかし、初心者が簡単に導入できる分、例えば「プラグインを更新したら不具合が生じてしまった」など手軽さゆえのトラブルも報告されています。

このようなトラブルを防ぐためには、本番環境でアップデートやカスタマイズを行うのではなく、ローカル環境を構築しテストすることが重要です。
そこで本記事では、WordPressのローカル環境を構築できる「Docker」というソフトウェアについて、概要と構築する方法をご紹介します。

1.Dockerとは

Dockerとは、アメリカのDocker社が開発したコンテナ型の仮想化プラットフォームのことです。

従来の仮想化技術「ハイパーバイザー型」とは異なり、Dockerを利用すれば、面倒であったローカル環境の構築をスピーディーに進められるのが魅力。

仮想化プラットフォームと聞いても、イマイチ理解できないという方も多いと思いますので、詳しく説明します。

そもそも仮想化とは、1台の物理サーバーで複数のOSを稼働する技術のことですが、大きく分けて「ホスト型」と「ハイパーバイザー型」、「コンテナ型」の3種類が存在します。

1-1.ホスト型

ホスト型とは、OSにベースとなる仮想化ソフトウェアを導入し、そこに仮想マシンを稼働させる手法のことです。

すでに利用中のサーバーやPCに仮想ソフトウェアを導入するだけで仮想環境を構築できるため、非常に手軽で導入しやすい特徴があります。

1-2.ハイパーバイザー型

ハイパーバイザー型とは、物理サーバーにハイパーバイザー(仮想化ソフトウェア)を導入して、仮想マシンを稼働させる手法のことです。(Type1の場合)

そのため、処理速度の低下を抑制し、複数の仮想マシンを効率良く稼働できるのが特徴です。

しかし、ハイパーバイザー型を導入する際は、動作可能な物理サーバーを準備しなければならず、物理サーバーに求められるスペックは慎重に選定しなければなりません。

1-3.コンテナ型

コンテナ型は、ホストOSにコンテナエンジンと呼ばれる仮想化ソフトウェアをインストールし、その上に各コンテナを配置します。

2.Dockerを導入するメリット

次にDockerを導入するメリットについて、詳しく解説します。

2-1.メンバー全員が同じ開発環境を構築できる

Dockerを導入するメリットの1つが、メンバー全員が同じ開発環境を構築できる点です。

例えば、XAMPPやMAMPでローカル環境の開発を進めている場合、メンバーが同じバージョンで統一しなければ、構文エラーが多発してしまう可能性があります。

しかし、Dockerであればテキストファイルをベースを設定でき、同じテキストファイルを使うことで、メンバー全員が同じ開発環境を作れるのです。

XAMPPやMAMPのように手間がなく、スムーズに開発を進められる点が、Dockerの魅力ではないでしょうか。

2-2.WordPressアップデートの検証を行える

WordPressテーマやプラグインをアップデートすると、予期せぬ不具合が発生する場合があります。

特に、気軽に操作できるからと初心者がアップデートし「バックアップもしていなかった」とトラブルの原因になりかねません。

本番環境ではなくローカル環境で検証を進めるため、本番環境に影響はありませんし、不具合が生じてもWebサイトが崩れる心配もありません。

事前にテスト環境でアップデートを検証することで、本番環境のアップデートに対する事前準備をすることができます。

2-3.スピーディーに動作する

繰り返しになりますが、Dockerは、ホストOSにコンテナエンジンと呼ばれる仮想化ソフトウェアをインストールし、その上に各コンテナを配置しています。

Linuxのローカル環境を稼働させる時点で処理の遅延を気にされる方も多いと思いますが、そのような場合には開発作業に影響が少ないDockerが便利でしょう。

3.Dockerを導入するデメリット

次に、Dockerを導入するデメリットについて解説します。

3-1.学習コストが増加し導入に時間がかかる

Dockerは、2013年に登場した新しいサービスのため、普及率という意味ではまだこれからという段階です。

つまり、Dockerという技術そのものを知っていても、現場で対応できるエンジニアは少なく、OSやサーバーなどのITインフラに詳しい人材が必要不可欠。

Dockerの基礎知識を習得するためには、公式のリファレンスをしっかり読むことをおすすめします。

初心者の場合、公式のリファレンスをしっかり読むことに時間を要するため、導入に時間がかかるのも懸念されています。

3-2開発チームによっては導入しづらい

企業内の開発プロジェクトにおいて、専門知識を持つエンジニアが不足している状況では、まずDockerに関する研修を進めて、起動法やコマンドへの理解を深める必要があります。

もちろん、幅広いスキルを持つデザイナーが在籍することは理想的ですが、一方で、このようなチームにはエンジニアが確保されていないケースも多い印象です。

そのような場合、これまでの開発環境からDockerへ転換しようと考えても、現場のWebデザイナーが不安に感じ、導入が進みづらい側面もあるでしょう。
Dockerを利用する上では、前提としてインフラ周りの知識が必要であり、専門知識を持つエンジニアが不足している状況では、Dockerを利用する上では、前提としてインフラ周りの知識が必要ですがあります。

4.DockerでWordPressの開発環境を構築する流れ

それでは、実際にDockerでWordPressの開発環境を構築する流れについてご紹介します。

4-1.構築条件

今回、DockerでWordPressの開発環境を構築する条件は、以下の通りです。

・WordPressのバージョンは最新版に
・MySQLのバージョンは5.7
・docker-composeのバージョンは2

4-2.Docker Desktopのインストール

まずDocker Desktopをインストールする必要があります。「Docker Desktop」にアクセスし、Mac版、Windows版どちらか自分のPCに合わせて、インストーラーをダウンロードしましょう。
Docker自体はあくまでLinuxのkernelを共用する仕組みだと思いますので、Docker Desktopを利用する上では、WindowsやMac環境の仮想マシン上で実行されるLinuxをベースとして実行されます。

また、Dockerアカウントをお持ちでない場合は、利用前にアカウントの作成を進めてください。インストールを開始する際やDockerを起動する際に求められます。

4-3.docker-compose.ymlの作成

次に、任意のディレクトリに「docker-compose.yml」を作成しましょう。なお、ファイルには以下の内容を記述してみてください。

wordpress:
image: wordpress:latest # MySQL5.7公式イメージを利用
ports:
– “3001:80” # ポート番号の設定
depends_on:
– mysql # mysqlを立ち上げた後にWordpressを立ち上げる
env_file: .env # 環境変数の定義に.envを利用
volumes:
– ./wp-content:/var/www/html/wp-content # マウントするディレクトリを指定

mysql:
image: mysql:5.7 # MySQL5.7公式イメージを利用
env_file: .env # 環境変数の定義に.envを利用
ports:
– “3306:3306” #ポート番号の設定

4-4.envの作成

docker-compose.ymlを作成する際に、環境定数の定義に「env_file: .env」を利用する設定をしました。

ですので、docker-compose.ymlと同じディレクトリに.envファイルを作成する必要があります。

以下の通りに記述してみてください。

WORDPRESS_DB_NAME=wordpress
WORDPRESS_DB_USER=wp_user
WORDPRESS_DB_PASSWORD=hogehoge

MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_DATABASE=wordpress
MYSQL_USER=wp_user
MYSQL_PASSWORD=hogehoge

4-5.マウントするディレクトリを作成する

次に、docker-compose.ymlと同じディレクトリに、「wp-content」という名前のディレクトリを作成します。

このwp-contentには、docker-compose.ymlを作成する際に、コンテナ上の「/var/www/html/wp-content」にマウントするために設定しています。

ですので、基本的なWordPressのwp-contentディレクトリのように扱うことが可能です。

このディレクトリでtheme、プラグインを作成することで、ローカル環境でコードを持ち、本番環境と同様にテーマ編集、プラグインのアップデートなどのテストができます。

4-6.コマンドを実行

続いて、shell等を起動しましょう。

作成したdocker-compose.ymlを保存しているディレクトリにおいて、次のコマンドを実行します。

$ docker-compose up -d

これで、Dockerを使用したローカル環境のコンテナの作成と起動が完了しました。

なお、ローカル環境のコンテナを停止したい場合は、以下のコマンドを実行します。

$ docker-compose stop

また、停止後に起動する場合は、以下のコマンドを入力します。

$ docker-compose start

まとめ

本記事では、WordPressにローカル環境を構築できる「Docker」というソフトウェアについて、概要と構築する方法をご紹介しました。

「開発メンバー全員が同じ開発環境を構築できる」「WordPressアップデートの検証を行える」など、XAMPPやMAMPのように手間がなくスムーズに開発を進められますので、ぜひ検討してみてください。

注目記事バナー