Docker, Wordpress · 2 min read · Oct 14, 2025

Ubuntu 16.04でNginxとPHP-FPMを使用したWordpressのDocker化

Docker-Composeは、複数のコンテナを単一のサービスのように定義および管理するためのコマンドラインツールです。ComposeはPythonで書かれており、Pythonのpipコマンドでインストールできます。Composeを使用すると、単一のコマンドで複数のDockerコンテナを実行できます。これは、開発、テスト、ステージング環境に最適です。

このチュートリアルでは、docker-composeを使用する手順をステップバイステップで説明します。Nginx、MySQL、PHP-FPMを使用して「Wordpress」をデプロイします。各サービスは独自のコンテナを持ち、Docker Hubレジストリからのイメージを使用します。Dockerイメージからコンテナを作成し、docker-composeで全てのコンテナを管理する方法を示します。

前提条件

  • Ubuntu 16.04
  • ルート権限

ステップ1 - Dockerのインストール

最初から始めて、aptコマンドでDockerとDocker Composeを手動でインストールします。

始める前に、Ubuntuリポジトリを更新し、最新のアップデートをインストールします:

sudo apt-get update  
sudo apt-get upgrade

デフォルトでは、DockerはUbuntuリポジトリに含まれているため、すぐにインストールを続けることができます:

sudo apt-get install -y docker.io

インストールが完了したら、Dockerを起動し、自動起動を有効にします:

systemctl start docker  
systemctl enable docker

次に、以下のコマンドでDockerのインストールをテストします:

docker run hello-world

Dockerからhello-worldが表示されます。

ステップ2 - Docker-Composeのインストール

Docker-composeはPythonで書かれたスクリプトで、PyPI Pythonリポジトリにあり、Python pipでインストールできます。したがって、まずシステムにPythonとPython pipをインストールする必要があります。

Pythonとpython-pipをインストールします:

sudo apt-get install -y python python-pip

次に、pipコマンドでdocker-composeをインストールします:

pip install docker-compose

インストールプロセスが完了するまで待ちます。その後、docker-composeコマンドでインストールを確認します:

docker-compose -v

docker-composeのバージョンが表示されます。

ステップ3 - Wordpressのセットアップ

これで、システムにDockerとDocker-Composeがインストールされました。このステップでは、WordPressプロジェクトのためのdocker-compose環境を作成し、セットアップする方法を示します。

NginxをWebサーバーとして使用し、MariaDBをMySQLデータベースとして使用して「Wordpress」PHPアプリケーションをDockerコンテナとしてデプロイします。各アプリケーション(Wordpress、Nginx、MySQL)は独自のコンテナで実行されます。以下のリストを参照してください:

  • Nginx:公式のDockerイメージ、最新バージョン「nginx: latest」を使用します。

  • Wordpress:WordpressはDocker HubにいくつかのDockerイメージを提供しており、WordPress 4.7をPHP-FPM 7.0で使用します。

  • MySQL:MariaDBの公式コンテナ、最新バージョンを使用します。

したがって、Docker Hubレジストリから3つのDockerイメージが必要です。

Dockerをルートとして実行しないため、通常のLinuxユーザーを使用します。以下のコマンドで新しいユーザーを作成します(ここで異なるユーザー名を使用しても構いませんが、ユーザーがまだ存在しないことを確認してください。異なる名前を選択した場合は、このチュートリアルのすべてのコマンドで変更してください):

useradd -m -s /bin/bash hakase  
passwd hakase

次に、ユーザーを「docker」グループに追加して、ユーザーがdockerコマンドを使用できるようにし、Dockerサービスを再起動します:

usermod -a -G docker hakase  
systemctl restart docker

ユーザー「hakase」にログインし、WordPressプロジェクトのための新しいディレクトリを作成します:

su - hakase  
mkdir -p wordpress-compose  
cd wordpress-compose/

次に、「docker-compose.yml」という新しいファイルを作成し、プロジェクトのための新しいディレクトリを作成します。以下のコマンドを入力します:

touch docker-compose.yml  
mkdir -p nginx/  
mkdir -p db-data/  
mkdir -p logs/nginx/  
mkdir -p wordpress/

プロジェクトのファイルとディレクトリのリスト:

  • docker-compose.yml:これはdocker-composeの設定ファイルで、新しいdocker-composeプロジェクトを開始するときに作成する必要があります。

  • nginx/:このディレクトリは、仮想ホストなどの追加のnginx設定に使用されます。

  • db-data/:mysqlデータのためのボリューム/ディレクトリ。’/var/lib/mysql’からのデータはdb-dataディレクトリにマウントされます。

  • logs/:アプリケーションログ、nginx、mariadb、php-fpmのためのディレクトリ。

  • wordpress/: すべてのWordPressファイルはそのディレクトリにあります。

「nginx」ディレクトリに、WordPressの仮想ホストのための新しい設定ファイルを作成します。

新しいファイルwordpress.confを作成します:

vim nginx/wordpress.conf

以下の設定を貼り付けます:

server {  
    listen 80;  
    server_name wp-hakase.co;  
   
    root /var/www/html;  
    index index.php;  
   
    access_log /var/log/nginx/hakase-access.log;  
    error_log /var/log/nginx/hakase-error.log;  
   
    location / {  
        try_files $uri $uri/ /index.php?$args;  
    }  
   
    location ~ \.php$ {  
        try_files $uri =404;  
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  
        fastcgi_pass wordpress:9000;  
        fastcgi_index index.php;  
        include fastcgi_params;  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        fastcgi_param PATH_INFO $fastcgi_path_info;  
    }  
}

ファイルを保存してvimを終了します。

ステップ4 - Docker-Composeの設定

このステップでは、docker-compose.ymlファイルの編集を開始します。docker-composeプロジェクトを開始する際は、まずdocker-compose.ymlファイルを作成することを確認してください。

vimでdocker-compose.ymlを編集します:

vim docker-compose.yml

サービスを定義します。最初の行ではNginxを定義します。公式のDockerイメージであるNginxの最新バージョンを使用し、コンテナのポート80をホストのポート80にマッピングします。次に、Dockerボリュームを設定します。Nginxの仮想ホスト設定のためのボリューム、Nginxのログファイルのためのボリューム、Webルートディレクトリのボリューム’/var/www/html’を設定します。NginxコンテナはWordPressコンテナにリンクされています。

以下の設定を貼り付けます:

nginx:  
    image: nginx:latest  
    ports:  
        - '80:80'  
    volumes:  
        - ./nginx:/etc/nginx/conf.d  
        - ./logs/nginx:/var/log/nginx  
        - ./wordpress:/var/www/html  
    links:  
        - wordpress  
    restart: always

次に、MySQLサーバーを定義します。MariaDBイメージの最新バージョンを使用します。コンテナのポート3306をマッピングし、環境変数’MYSQL_ROOT_PASSWORD’でMySQLのルートパスワードを設定します。最後に、MySQLデータディレクトリのためのコンテナボリュームを設定します。

以下の設定を貼り付けます:

mysql:  
    image: mariadb  
    ports:  
        - '3306:3306'  
    volumes:  
        - ./db-data:/var/lib/mysql  
    environment:  
        - MYSQL_ROOT_PASSWORD=aqwe123  
    restart: always

次に、PHP-FPM 7.0がインストールされたWordPress 4.7 Dockerイメージを使用してWordPressサービスを設定します。PHP-FPMのポートを9000に設定し、Webディレクトリ’/var/www/html’のDockerボリュームをホストディレクトリ’wordpress’に設定し、WordPress環境変数を定義してデータベースを設定し、WordPressサービスをmysqlにリンクします。

以下の設定を貼り付けます:

wordpress:  
    image: wordpress:4.7.1-php7.0-fpm  
    ports:  
        - '9000:9000'  
    volumes:  
        - ./wordpress:/var/www/html  
    environment:  
        - WORDPRESS_DB_NAME=wpdb  
        - WORDPRESS_TABLE_PREFIX=wp_  
        - WORDPRESS_DB_HOST=mysql  
        - WORDPRESS_DB_PASSWORD=aqwe123  
    links:  
        - mysql  
    restart: always

docker-compose.ymlファイルに3つの部分を追加した後、ファイルを保存してvimエディタを終了します。

私たちのdocker-compose設定は準備完了です。

ステップ5 - Docker-composeの実行

Docker Composeで新しいコンテナを作成し始めます。wordpress-composeディレクトリに移動し、composeファイルに基づいて新しいコンテナを開始します。

cd ~/wordpress-compose/  
docker-compose up -d

コマンドの結果を見ることができます。3つのコンテナが作成されました。psオプションでコンテナの状態を確認しましょう:

docker-compose ps

以下が結果です:

Docker-compose Wordpressの開始

コンテナからのログ出力を確認したい場合は、以下のコマンドを使用できます:

docker-compose logs nginx  
docker-compose logs mysql  
docker-compose logs wordpress

コンテナログ:

docker-compose logsコマンドの例

注意
WordPressコンテナログにMySQL接続拒否のエラーが表示される場合は、無視してください。

ステップ6 - Wordpressのインストール

このステップを行う前に、システム上の利用可能なポート/オープンポートを確認します。ポート80、3306、および9000の3つのポートが開いていることを確認してください。

netstat -plntu

結果は以下の通りです:

Dockerのポートオープン

今、Webブラウザを開き、サーバーのURLまたはIPアドレスを入力します。

http://serverIP/

WordPressのインストールページが表示されます。言語を選択し、「続ける」をクリックします。

Wordpressインストール言語設定

サイトのタイトル、管理者ユーザーとパスワード、メールアドレスなどのウェブサイトの詳細を入力し、「Wordpressをインストール」をクリックします。

Wordpressインストールユーザーとサイト設定の入力

Wordpress管理ダッシュボード」にリダイレクトされます。

Wordpress管理ダッシュボード Docker-Compose

これが私のWordPressサンプル投稿「Hello World」です。

Docker-ComposeでのWordpress

Wordpressはdocker-composeでインストールされました。

ステップ7 - Dockerコンテナへのアクセス

これはdocker-composeでコンテナにアクセスする方法に関する追加のステップです。すべてのコンテナが利用可能で、その状態を表示していることを確認します:

docker-compose ps

すでに3つのコンテナがありますので、各コンテナにログインしてみましょう。最初のNginxコンテナにdocker-composeコマンドでログインします。

docker-compose exec nginx bash

nginx:docker-compose.ymlファイルのサービス名

bash:bashシェルコマンドを実行します

次に、WordPressの仮想ホスト設定を確認します。

cat /etc/nginx/conf.d/wordpress.conf

Nginx docker composeサービス

ファイルはコンテナ内にあります。

次に、mysqlコンテナにログインし、composeファイルのパスワードでmysqlシェルにログインします。

docker-compose exec mysql bash  
mysql -u root -p  
TYPE MYSQL ROOT PASSWORD

データベースのリストを表示します:

show databases;

WordPressデータベースが表示されます。

MySQL Docker Composeサービス

「wordpress」コンテナ内では、すべてのWordPressファイルが表示されます。

docker-compose exec wordpress bash  
ls -lah

すべてのコンテナにアクセス可能です。

参考

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。