【Docker基礎】WordPressコンテナの作成時のオプションと引数

 ここでは、Dockerを使用してWordPressコンテナを作成・実行する際に必要となるオプションと引数について詳しく解説します。WordPressはデータベース(今回はMySQL)と連携して動作するため、コンテナ起動時に多くのオプションを設定する必要があります。以下では、主要なオプションとその設定方法、各オプションの詳細な説明を行い、WordPressコンテナの正しい設定方法を学びます。

WordPressコンテナの概要

 WordPressコンテナは、WordPress本体、Apache Webサーバー、PHP実行環境が含まれる公式イメージを使用して構築されます。このコンテナを起動する際には、以下のオプションと引数を指定する必要があります。

よく使う記述例

docker run --name コンテナ名 -dit
 --net=ネットワーク名
 -p ポートの設定
 -e WORDPRESS_DB_HOST=データベースのコンテナ名
 -e WORDPRESS_DB_NAME=データベース領域名
 -e WORDPRESS_DB_USER=データベースのユーザー名
 -e WORDPRESS_DB_PASSWORD=データベースのパスワード
 wordpress

使用するオプションと引数

WordPressコンテナを起動する際に指定する主なオプション引数は以下の通りです。

項目オプション値(例)説明
ネットワーク名--networdpress-networkコンテナを接続するDockerネットワークを指定します。
コンテナ名--namewordpress-containerコンテナに付ける名前を指定します。
実行オプション-dit(なし)コンテナをバックグラウンドでデタッチモード、インタラクティブモード、TTYモードで実行します。
ポートマッピング-p8080:80ホストとコンテナのポートをマッピングします。
データベースホスト名-e WORDPRESS_DB_HOSTmysql-containerMySQLコンテナのホスト名を指定します。
データベース名-e WORDPRESS_DB_NAMEwordpress-db使用するデータベースの名前を指定します。
データベースユーザー名-e WORDPRESS_DB_USERwordpressuserデータベースに接続するユーザー名を指定します。
データベースユーザーパスワード-e WORDPRESS_DB_PASSWORDuserpassデータベースユーザーのパスワードを設定します。

使用する引数

特にありません。

オプションの詳細解説

以下に、WordPressコンテナ起動時に使用する各オプションの詳細な解説を行います。

1.ネットワーク名 (--net)

 コンテナを特定のDockerネットワークに接続します。これにより、WordPressコンテナとMySQLコンテナが同じネットワーク内で通信できるようになります。

--net=wordpress-network

2.コンテナ名 (--name)

コンテナに対して一意の名前を付けます。これにより、後でコンテナを識別しやすくなります。

--name wordpress-container

3.実行オプション (-dit)

 コンテナをバックグラウンドでデタッチモード(-d)、インタラクティブモード(-i)、TTYモード(-t)で実行します。これにより、コンテナがバックグラウンドで動作し続けます。

-dit

4.ポートマッピング (-p)

 ホストのポート8080をコンテナのポート80にマッピングします。これにより、ホストマシンのポート8080を通じてWordPressにアクセスできるようになります。

-p 8080:80

5.データベースホスト名 (-e WORDPRESS_DB_HOST)

 WordPressが接続するデータベースのホスト名を指定します。MySQLコンテナの名前(例: mysql-container)を指定します。

-e WORDPRESS_DB_HOST=mysql-container

6.データベース名 (-e WORDPRESS_DB_NAME)

 使用するデータベースの名前を指定します。MySQLコンテナ起動時に設定したデータベース名と一致させる必要があります。

-e WORDPRESS_DB_NAME=wordpress-db

7.データベースユーザー名 (-e WORDPRESS_DB_USER)

 データベースに接続するユーザー名を指定します。MySQLコンテナ起動時に設定したユーザー名と一致させる必要があります。

-e WORDPRESS_DB_USER=wordpressuser

8.データベースユーザーパスワード (-e WORDPRESS_DB_PASSWORD)

 データベースユーザーのパスワードを設定します。MySQLコンテナ起動時に設定したパスワードと一致させる必要があります。

-e WORDPRESS_DB_PASSWORD=userpass

WordPressコンテナ起動コマンドの実行例と解説

以下に、実際にWordPressコンテナを起動する際のコマンド例とその詳細な解説を行います。

実行コマンドの例

docker run --name wordpress-container -dit --net=wordpress-network `
  -p 8080:80 `
  -e WORDPRESS_DB_HOST=mysql-container `
  -e WORDPRESS_DB_NAME=wordpress-db `
  -e WORDPRESS_DB_USER=wordpressuser `
  -e WORDPRESS_DB_PASSWORD=userpass `
  wordpress

コマンドの解説

セクションオプション/引数説明
コンテナ名の指定--name wordpress-containerwordpress-containerコンテナに「wordpress-container」という名前を付けます。これにより、後でコンテナを識別しやすくなります。
実行モードの指定-dit(なし)コンテナをバックグラウンドでデタッチモード(-d)、インタラクティブモード(-i)、TTYモード(-t)で実行します。
ネットワークの指定--net=wordpress-networkwordpress-network「wordpress-network」というカスタムネットワークにコンテナを接続します。これにより、MySQLコンテナとの通信が可能になります。
ポートマッピング-p 8080:808080:80ホストのポート8080をコンテナのポート80にマッピングします。これにより、ホストマシンのポート8080を通じてWordPressにアクセスできます。
データベースホスト名-e WORDPRESS_DB_HOST=mysql-containermysql-containerWordPressが接続するデータベースのホスト名を指定します。MySQLコンテナの名前と一致させる必要があります。
データベース名-e WORDPRESS_DB_NAME=wordpress-dbwordpress-db使用するデータベースの名前を指定します。MySQLコンテナ起動時に設定したデータベース名と一致させる必要があります。
データベースユーザー名-e WORDPRESS_DB_USER=wordpressuserwordpressuserデータベースに接続するユーザー名を指定します。MySQLコンテナ起動時に設定したユーザー名と一致させる必要があります。
データベースユーザーパスワード-e WORDPRESS_DB_PASSWORD=userpassuserpassデータベースユーザーのパスワードを設定します。MySQLコンテナ起動時に設定したパスワードと一致させる必要があります。
イメージ名wordpress(なし)使用するDockerイメージ名を「wordpress」と指定します。公式のWordPressイメージを使用します。

注意点

  • 環境変数の一致: WordPressコンテナで設定するデータベースの情報(ホスト名、データベース名、ユーザー名、パスワード)は、MySQLコンテナ起動時に設定した値と一致させる必要があります。これが一致しないと、WordPressはデータベースに接続できず、正常に動作しません。
  • ポートの競合: ホストのポート8080が既に使用されている場合、別のポート番号を指定してください。例えば、-p 8081:80のように変更します。
  • セキュリティ: 簡易的なパスワードを使用していますが、実運用環境では強固なパスワードを設定し、必要に応じて環境変数ファイルやDocker Secretsを利用してパスワードを管理することが推奨されます。
  • リソース管理: コンテナに割り当てるリソース(メモリやCPU)を適切に設定し、ホストマシンのリソースを効率的に活用してください。

まとめ

 ここでは、WordPressコンテナをDocker上で作成・実行する際のオプションと引数について詳しく解説しました。以下のポイントを押さえておきましょう。

  • オプションの理解: --name-dit--net-p-eオプションを使用して、コンテナ名やネットワーク設定、ポートマッピング、環境変数を適切に設定します。
  • 環境変数の設定: WORDPRESS_DB_HOSTWORDPRESS_DB_NAMEWORDPRESS_DB_USERWORDPRESS_DB_PASSWORDなどの環境変数を設定することで、WordPressとMySQLの連携を自動化します。
  • セキュリティの考慮: パスワードの強化や環境変数の適切な管理を行い、セキュアな環境を維持します。

 これらの知識を基に、次のコンテンツWordPressとMySQLコンテナを実際に作成して実行するハンズオンを行います。実際の操作を通じて、WordPressとMySQLの連携を完了させ、動的なWebサイトを構築・運用する方法を習得しましょう。引き続き、Dockerの学習を進めていきましょう。