コンテナ内でのサービス実行

DockerIntermediate
オンラインで実践に進む

はじめに

このチャレンジでは、Red Hat Enterprise Linux システム上でのコンテナ化されたサービスの管理を実践します。あなたのタスクは、Web サーバー用のカスタムコンテナイメージを構築し、そのイメージに基づいてコンテナを実行し、ホストシステムからサービスにアクセスできることを確認することです。この演習は、Red Hat 認定システム管理者(RHCSA)のコアコンピテンシーである、コンテナでのアプリケーションのデプロイと管理に関する基本的なスキルを網羅しています。

コンテナ内でのサービス実行

このチャレンジでは、Apache HTTP Server(httpd)を含むカスタムコンテナイメージを構築します。Web サーバーによって配信されるシンプルな HTML ファイルを作成し、カスタムイメージからコンテナを実行します。最後に、Web サービスが正しく動作しており、ホストからアクセス可能であることを検証します。

タスク

  • Apache HTTP Server(httpd)を含むカスタムコンテナイメージを構築する。
  • Web サーバーで公開するためのシンプルな HTML ファイルを作成する。
  • カスタムイメージからコンテナを実行し、Web サービスを公開する。
  • Web サービスが正しく動作し、ホストからアクセスできることを確認する。

要件

  • すべてのファイルは ~/project ディレクトリ内に作成すること。
  • ubi9 ベースイメージを使用する Dockerfile を作成すること。
  • Dockerfile 内で httpd パッケージをインストールすること。
  • <h1> タグ内に Hello, World! というテキストを含む index.html ファイルを作成すること。
  • コンテナイメージをビルドし、my-web-server というタグを付けること。
  • my-web-server イメージからバックグラウンドでコンテナを実行すること。
  • コンテナ名は my-web-server-run とすること。
  • コンテナ内の Web サーバーはポート 80 で待機し、このポートをホストのポート 8080 にマッピングすること。

実行例

コンテナの起動に成功した後、ターミナルで curl localhost:8080 コマンドを実行すると、以下のような出力が表示されるはずです。

<html>
  <body>
    <h1>Hello, World!</h1>
  </body>
</html>

まとめ

このチャレンジでは、Red Hat Enterprise Linux システム上でサービスをコンテナ化する方法を学びました。カスタム環境を定義するための Dockerfile を作成し、podman を使用してコンテナイメージをビルドし、Web サーバーをホストするためのコンテナを実行することに成功しました。また、実行中のコンテナの状態を確認し、ネットワークサービスをテストする実習も行いました。これらは、現代のアプリケーションデプロイとシステム管理において不可欠なスキルです。

✨ 解答を確認して練習