第13章 デーモンイメージ

13.1. Apache HTTP サーバー

13.1.1. 説明

rhscl/httpd-24-rhel7 イメージは、Apache HTTP 2.4 サーバーを提供します。イメージは、Apache HTTP Web サーバーに基づく他のアプリケーションのベースイメージとして使用できます。

13.1.2. アクセス

rhscl/httpd-24-rhel7 イメージをプルするには、root で以下のコマンドを実行します。

# podman pull registry.redhat.io/rhscl/httpd-24-rhel7

rhscl/httpd-24-rhel7 イメージは、S2I ツールの使用をサポートしています。

13.1.3. 設定と使用方法

Apache HTTP Server コンテナーイメージは、podman run コマンドで -e オプションを使用して設定できる以下の設定変数をサポートします。

変数名説明

HTTPD_LOG_TO_VOLUME

デフォルトでは、httpd は標準出力にログインするため、podman logs コマンドを使用してログにアクセスできます。HTTPD_LOG_TO_VOLUME が設定されていると、httpd/var/log/httpd24 にログインし、コンテナーボリュームを使用してホストシステムにマウントできます。このオプションは、コンテナーが UID 0 として実行される場合に許可されます。

HTTPD_MPM

この変数を設定して、デフォルトの Multi-Processing Module (MPM) を、パッケージのデフォルト MPM から変更できます。

イメージを実行し、ログファイルをコンテナーボリュームとしてホストの /wwwlogs にマウントするには、以下のコマンドを実行します。

$ podman run -d -u 0 -e HTTPD_LOG_TO_VOLUME=1 --name httpd -v /wwwlogs:/var/log/httpd24:Z rhscl/httpd-24-rhel7

(デフォルトの prefork ではなく) イベント MPM を使用してイメージを実行するには、以下のコマンドを実行します。

$ podman run -d -e HTTPD_MPM=event --name httpd rhscl/httpd-24-rhel7

-v /host:/container オプションを podman run コマンドに渡すと、以下のマウントポイントを設定することもできます。

ボリュームマウントポイント説明

/var/www

Apache HTTP Server データディレクトリー

/var/log/httpd24

Apache HTTP Server ログディレクトリー (root で実行している場合のみ利用可能)

ホストからコンテナーにディレクトリーをマウントする場合は、マウントされたディレクトリーに適切なパーミッションがあり、ディレクトリーの所有者とグループが、コンテナー内で実行中のユーザー UID または名前と一致していることを確認します。

注記

rhscl/httpd-24-rhel7 コンテナーイメージは、OpenShift の source-to-image ストラテジー内で正常に機能するためにデフォルトの UID として 1001 を使用するようになりました。また、コンテナーイメージはデフォルトで 8080 ポートをリッスンします。以前は、rhscl/httpd-24-rhel7 コンテナーイメージはデフォルトでポート 80 でリッスンし、UID 0 として実行されていました。

rhscl/httpd-24-rhel7 コンテナーイメージを UID 0 として実行するには、podman run コマンドに -u 0 オプションを指定します。

podman run -u 0 rhscl/httpd-24-rhel7