カスタマイズ 2021.12.20 2023.07.26
【初心者向け】Dockerとは?概要とWordPress環境を構築する方法
WordPressは、初心者でも気軽にWebサイトを構築・運用できることから、全世界のWebサイトのうち1/3以上が導入していると言われ、非常に人気です。
しかし、初心者が簡単に導入できる分、例えば「プラグインを更新したら不具合が生じてしまった」など手軽さゆえのトラブルも報告されています。
このようなトラブルを防ぐためには、本番環境でアップデートやカスタマイズを行うのではなく、ローカル環境を構築しテストすることが重要です。
そこで本記事では、WordPressのローカル環境を構築できる「Docker」というソフトウェアについて、概要と構築する方法をご紹介します。
目次
Dockerとは
Dockerとは、アプリケーションを「コンテナ」と呼ばれる独立した環境にパッケージ化し、開発や実行を容易にするための仮想化プラットフォームです。
従来の仮想化技術では、仮想マシンを使用してアプリケーションをパッケージ化し、ホストOSとは別にゲストOS環境で実行するのが一般的でした。
Dockerでは、ホストOSのカーネル(OSの中核的なプログラム)を共有するため、ゲストOSが必要ありません。
その分、動作も軽快です。
そもそもサーバーの仮想化とは
仮想化プラットフォームと聞いても、イマイチ理解できないという方も多いと思いますので、詳しく説明します。
そもそも仮想化とは、1台の物理サーバーで複数のOSを稼働する技術のこと。
大きく分けて「ホスト型」「ハイパーバイザー型」「コンテナ型」の3種類が存在します。
ホスト型
ホスト型とは、OSにベースとなる仮想化ソフトウェアを導入し、そこに仮想マシンを稼働させる手法のことです。
すでに利用中のサーバーやPCに仮想ソフトウェアを導入するだけで仮想環境を構築できるため、非常に手軽で導入しやすい特徴があります。
ハイパーバイザー型
ハイパーバイザー型とは、物理サーバーにハイパーバイザー(仮想化ソフトウェア)を導入して、仮想マシンを稼働させる手法のことです。(Type1の場合)
そのため、処理速度の低下を抑制し、複数の仮想マシンを効率良く稼働できるのが特徴です。
しかし、ハイパーバイザー型を導入する際は、動作可能な物理サーバーを準備しなければならず、物理サーバーに求められるスペックは慎重に選定しなければなりません。
コンテナ型
ホストOSにコンテナエンジンと呼ばれる仮想化ソフトウェアをインストールし、その上に各コンテナを配置します。
他の型とは違ってゲストOSを必要としないため、軽快に作動します。
Dockerはこのコンテナ型に分類されます。
Dockerの仕組み
Dockerの仕組みについて解説します。
記事の後半では、DockerでWordPressの開発環境を構築する方法について解説していますが、Dockerの仕組みや用語について確認しておくと、作業内容の理解が深まるでしょう。
イメージとは
コンテナを活用するために必要なアーカイブパッケージのことです。
具体的には、
- アプリケーション本体
- ライブラリ
- フレームワーク
- 基本コマンド
などが入っています。
このイメージを用いることで、アプリケーションの実行に必要なファイルや設定などを手動で行うことなく、スムーズに利用することが可能になります。
WordPressのコンテナを構築するならWordPress用の、PHPのコンテナを構築するならPHP用のイメージが必要です。
コンテナとは
1つのOS上で、CPUやメモリ、プロセス空間などが独立した仮想環境のこと。
従来の仮想マシンを使用した仮想技術では、ゲストOSを構築する必要がありましたが、コンテナを使うと1つのホストOS上で独立した環境を構築できます。
ゲームに例えると、ハードウェアがゲーム機本体、イメージがゲームソフト、コンテナがセーブデータだと思えばより理解しやすいかもしれません。
ハードウェアとゲームソフトが揃えば、誰でもゲームで遊ぶことができますよね。
そして、ユーザーごとのゲームの進捗状況は、各自セーブデータを作成・保存し、いつでも再開が可能。セーブデータを共有すれば、他の人も同じ状況でゲームを再開できます。
Dockerにおいても、ハードウェアとイメージがあれば簡単に仮想環境を構築することができ、コンテナを使うことでその環境をいつでも呼び出すことができます。
マウントとは
ホストOSにあるディレクトリファイルを、コンテナから利用できるようにする機能のことです。
マウントによって、コンテナを削除してもホストOSにデータを残すことができます。
これを、データの永続化といいます。
Docker-compeseとは
Docker-compeseとは、複数のコンテナを一元管理する仕組みのことです。
例えばDockerにおけるWordPressの開発環境には、WordPressのコンテナとMySQLのコンテナが必要ですが、これらのコンテナを1つずつ構築や起動するのは手間がかかります。
そこでDocker-compeseを使用すれば、複数のコンテナの構築や起動を一括で行えるようになります
2.Dockerを導入するメリット
次にDockerを導入するメリットについて、詳しく解説します。
メンバー全員が同じ開発環境を構築できる
Dockerを導入するメリットの1つが、メンバー全員が同じ開発環境を構築できる点です。
例えば、XAMPPやMAMPでローカル環境の開発を進めている場合、メンバーが同じバージョンで統一しなければ、構文エラーが多発してしまう可能性があります。
しかし、Dockerであればテキストファイルのベースを設定でき、同じテキストファイルを使うことで、メンバー全員が同じ開発環境を作れるのです。
XAMPPやMAMPのように手間がなく、開発をスムーズに進められる点が、Dockerの魅力ではないでしょうか。
2-2.WordPressアップデートの検証を行える
WordPressテーマやプラグインをアップデートすると、予期せぬ不具合が発生する場合があります。
そのため、いきなり本番環境でアップデートを行うのはリスクが大きいです。
Dockerでは本番環境ではなくローカル環境で検証を進めるため、本番環境に影響はありませんし、不具合が生じてもWebサイトが崩れる心配もありません。
事前にテスト環境でアップデートを検証することで、本番環境のアップデートに対する事前準備ができます。
スピーディーに動作する
繰り返しになりますが、Dockerは、ホストOSにコンテナエンジンと呼ばれる仮想化ソフトウェアをインストールし、その上に各コンテナを配置しています。
Linuxのローカル環境を稼働させる時点で処理の遅延を気にされる方も多いと思いますが、そのような場合には開発作業に影響が少ないDockerが便利でしょう。
広く普及しており情報が豊富
DockerはAWSやMicrosoft Azureなど主要なクラウドサービスに対応しているなど、広く普及しています。
そのため、Dockerの情報はWebサイトやYouTube、書籍などで簡単に手に入れることができます。
Dockerに関するセミナーも開催されているので、導入する際に受講してみてはいかがでしょうか。
Dockerを導入するデメリット
次に、Dockerを導入するデメリットについて解説します。
開発チームによっては導入しづらい
ITインフラの専門知識を持つ人材がいないチームには、Dockerは導入しづらいでしょう。
そのようなチームにはDockerに関する研修を実施し、メンバーが仕組みや基本操作を理解する必要があります。
また、業務フローが大きく変わるため、導入に踏み切れないというケースもあり得ます。
DockerでWordPressの開発環境を構築する流れ
それでは、実際にDockerでWordPressの開発環境を構築する流れについてご紹介します。
構築条件
今回、DockerでWordPressの開発環境を構築する条件は、以下の通りです。
- WordPressのバージョンは最新版に
- MySQLのバージョンは5.7
- docker-composeのバージョンは2
Docker Desktopのインストール
まずDocker Desktopをインストールする必要があります。「Docker Desktop」にアクセスし、Mac版、Windows版どちらか自分のPCに合わせて、インストーラーをダウンロードしましょう。
Docker自体はあくまでLinuxのカーネルを共用する仕組みだと思いますので、Docker Desktopを利用する上では、WindowsやMac環境の仮想マシン上で実行されるLinuxをベースとして実行されます。
また、Dockerアカウントをお持ちでない場合は、利用前にアカウントの作成を進めてください。インストールを開始する際やDockerを起動する際は、アカウントへのログインが必要です。
docker-compose.ymlの作成
次に、任意のディレクトリに「docker-compose.yml」を作成しましょう。なお、ファイルには以下の内容を記述してみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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" #ポート番号の設定 |
envの作成
docker-compose.ymlを作成する際に、環境定数の定義に「env_file: .env」を利用する設定をしました。
ですので、docker-compose.ymlと同じディレクトリに.envファイルを作成する必要があります。
以下の通りに記述してみてください。
1 2 3 4 5 6 7 8 9 10 |
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 |
マウントするディレクトリを作成する
次に、docker-compose.ymlと同じディレクトリに、「wp-content」という名前のディレクトリを作成します。
このwp-contentには、docker-compose.ymlを作成する際に、コンテナ上の「/var/www/html/wp-content」にマウントするために設定しています。
ですので、基本的なWordPressのwp-contentディレクトリのように扱うことが可能です。
このディレクトリでtheme、プラグインを作成することで、ローカル環境でコードを持ち、本番環境と同様にテーマ編集、プラグインのアップデートなどのテストができます。
コマンドを実行
docker-compose.ymlを保存しているディレクトリにおいて、コマンドが実行できます。
コマンドと操作の対応表をまとめたので、参考にしてください。
コマンド | 操作 |
---|---|
$ docker-compose up -d | コンテナをまとめて構築、起動 |
$ docker-compose stop | コンテナをまとめて停止 |
$ docker-compose start | コンテナをまとめて再起動 |
動作確認
コマンドでコンテナの構築を行った後は、ブラウザで動作確認を行います。
下記のURLを入力し、WordPressの初期設定画面が表示されたら構築完了です。
まとめ
本記事では、WordPressにローカル環境を構築できる「Docker」というソフトウェアについて、概要と構築する方法をご紹介しました。
「開発メンバー全員が同じ開発環境を構築できる」「WordPressアップデートの検証を行える」など、XAMPPやMAMPのように手間がなくスムーズに開発を進められますので、ぜひ検討してみてください。
なお、「Docker」の使用には一定の専門知識が必要となるため、初心者の方には、同じくローカル環境を簡単に作成できる「Local」の方が扱いやすいかもしれません。
「Local」に関しては、以下の記事で解説していますので、興味がある方はこちらも参考にしてみてくださいね。
【図解】Local(旧Local by Flywheel)でWordPressローカル環境を手軽に構築
WordPressサイト制作・カスタマイズなら「wp.make」にお任せ!
WordPressでのサイト制作やリニューアルを検討する時、以下のようなお悩みはありませんか?
- WordPressに詳しい制作会社に依頼したいが、どこがいいかわからない…
- セキュリティ対策をしっかりしたいが、社内にノウハウがないのでプロに任せたい…
- WordPressに最適なサーバーの選定や構築から依頼したい…
- SEO対策や高速化も考慮したサイト構築を行なってほしい…
- 制作後の保守・運用についてもサポートしてほしい…
- 今のサイトを簡単に運用できるようにしてほしい…
「wp.make」は、WordPressのプロフェッショナル集団によるWordPressサイト制作・カスタマイズサービスです。
サイトの制作だけでなく、WordPressに最適なサーバーの選定や構築といったインフラ面の支援から、SEO対策や表示スピードの高速化、高度なセキュリティ対策や制作後の保守・運用サポートまで、WordPressに関わることならあらゆるお悩みを解消いたします。
既存のお客さまからも
「コミュニケーションが取りやすく、クオリティが高い」
「WordPressのプロとして信頼感がある」
と大変ご好評をいただいています。
WordPressサイトの制作・カスタマイズをご検討されているなら、ぜひ以下からお気軽にご相談ください。
WordPress開発・カスタマイズなら 『wp.make』
全案件WordPressのみ!
株式会社e2eの『wp.make』はWordPress専門のWeb制作サービスです。
WordPress案件だけを扱っているから、技術・ノウハウ・対応力が圧倒的!
【WordPressサイト制作でよくあるお悩み】
・運用シーンが想定されておらず、更新しづらかった…
・打ち合わせで専門用語が多くてわかりづらい…
・制作後の保守には対応してくれなかった…
こんな事態になる前に、ぜひ一度、ご相談ください!
WordPressサイトを作るなら、一番WordPressに詳しいところへ!