この記事では、Docker 上にWordPress開発環境を構築する方法を説明します。
Dockerとは?
Dockerは、Linuxコンテナ 技術を利用しているアプリケーション実行環境を提供するツールで、アプリケーションのパッケージ化、配布、実行、管理を簡単にすることを目的としています。
Dockerは、Linux 上で動作しますが、WindowsやMacOSなどのOS上でも利用することができます。
Docker 上にWordPress開発環境を構築する方法
Docker 上にWordPress開発環境を構築する方法はいくつかありますが、その中でもより簡単な方法として、Docker Compose を使う手順を説明します。
WordPress開発環境を構築するには同時に複数のコンテナを操作する必要があります。
- Docker:
- 1度に1つのコンテナを操作
- Docker Compose:
- 同時に複数のコンテナを操作
多少の準備は必要ですが、一度設定しておけば、簡単なコマンドで環境が構築されますよ。
コマンドとは?
「簡単なコマンドで」と書きましたが、普段 GUI ばかりで用が済んでしまっていて、「コマンドを使う機会がほとんどない」という人も多いかもしれませんね。
Docker EngineはLinuxベースのものです。
Dockerは、Linuxカーネルの機能であるコンテナ技術を利用して、アプリケーションを仮想環境にパッケージ化して動作させています。(➡ Linuxコンテナ)
Dockerを利用する上で Linuxコマンド の知識は必須とは言えませんが、Dockerを管理する上でLinuxコマンドが役に立つと思います(次項ではLinuxコマンドを使って説明しています💦)。
下記はDockerを管理する際によく使われるコマンドです:
マンド | 説明 |
---|---|
docker run | Dockerイメージを実行してコンテナを作成します。 |
docker ps | 起動中のDockerコンテナの一覧を表示します。 |
docker images | Dockerイメージの一覧を表示します。 |
docker stop | Dockerコンテナを停止します。 |
docker start | Dockerコンテナを再起動します。 |
docker rm | Dockerコンテナを削除します。 |
docker rmi | Dockerイメージを削除します。 |
これらはDockerを管理する際によく使われるコマンドですが、これらに加えてDockerには多くのオプションが用意されており、より詳細な管理が可能です。
Docker Compose のインストールと実行・停止コマンド
Docker Compose は、複数の Docker コンテナを定義、実行、管理するためのツールです。
複数の Docker コンテナを一つのコマンドで実行するために、YAML 形式で定義された docker-compose.yml
ファイルが、Docker Compose コマンドを実行する際のカレントディレクトリに存在する必要があります。
具体的には、作業用のフォルダを作成し、その中に docker-compose.yml
ファイルを作成し、そのフォルダ内で Docker Compose コマンドを実行することで、構成されたサービスを実行することができます。
この後、Ubuntu環境での説明になっていますが、
Windowsの場合は「スタート」を右クリック「ターミナル(管理者)」クリックでターミナルのタブの右にあるドロップダウンからWSL2でインストールしたLinuxを選んでください。
VSCode使用の場合でも、同様にターミナルのリストからUbuntu22.04(WSL)のように選べます。
Docker Compose を使用するには、以下の手順が必要です:
- Docker Compose のインストール:
Docker Compose をインストールする必要があります。
Ubuntu システム上で Docker Compose をインストールするには、次のコマンドを実行します。
sudo apt install docker-compose
- Docker Compose ファイルの作成:
Docker Compose では、YAML 形式で複数の Docker コンテナを定義するための Docker Compose ファイル(docker-compose.yml)を作成する必要があります。
この Docker Compose ファイルには、サーバー環境を構築するために必要な Docker イメージ、ポートマッピング、環境変数などが含まれます(次項でサンプルを紹介)。 - Docker Compose の実行:
Docker Compose ファイルを作成した後、次のコマンドを使用して Docker Compose を実行してください。
docker-compose up
これにより、Docker Compose ファイルに定義された複数の Docker コンテナが一つのコマンドで実行されます。
Docker Compose を使用することで、Docker 上にサーバー環境を構築することがより簡単かつ効率的になります。
ちなみにストップする場合のコマンドは以下になります。
docker-compose stop
詳細は、Docker Compose のドキュメンテーションや各種オンラインリソースを参照することをお勧めします。
WordPress を一発起動するサンプル
PHPのコンテナとMySQL等のデータベース用コンテナを手動で起動し、ネットワークの接続や設定を行うという手間をDocker Compose ファイルが代行してくれますよ。
まずディレクトリを作成し、移動します。
$ mkdir wordpress $ cd wordpress
そして、このディレクトリ内に以下の内容の「docker-compose.yml」を保存します。
version: '3.1'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
WordPress サービスは、ホストの 8080 番ポートとコンテナ内の 80 番ポートを関連付けます。
コマンドを実行すると、ブラウザで「http://localhost:8080」を開くとWordPressの初期画面が表示されるはずです。
WordPress サービスは、MySQL サービスに依存しており、WordPress 用のデータベース情報も環境変数で設定されます。
最後に、ホストの wp-content
ディレクトリを WordPress コンテナ内にマウントすることで、WordPress コンテンツをホストと同期することができます。
補足
必要な環境を構築するためには、サンプルファイルをカスタマイズして、自分の要件に合わせて使用することが可能です。
さわって学ぶクラウドインフラ docker基礎からのコンテナ構築
この記事を読んで「Linuxの知識も必要だよな~」と思った人はこの記事もご覧ください。
コメント