type
status
date
slug
summary
tags
category
icon
password
书籍

基本的なApacheコンテナイメージ作成ガイド付き演習


演習概要

目標
RHEL 7.5イメージを基盤として、基本的なApacheコンテナイメージを作成します。

手順

事前準備
以下のコマンドを実行し、関連するラボファイルをダウンロードしてDockerが稼働していることを確認します。

1. Dockerfileの作成

1.1. Dockerfileを作成
以下のコマンドで新しいDockerfileを作成します。
1.2. ベースイメージの指定
Dockerfileの先頭に以下を追加します。
1.3. 作成者情報を追加
以下を追加し、自分の名前とメールアドレスに置き換えます。
1.4. イメージのメタデータを追加
以下を追加して説明を設定します。
1.5. Apacheのインストール
以下のコマンドを使用してApacheをインストールします。
1.6. ポートの公開
以下を追加して、ポート80を使用することを記録します。
1.7. デフォルトの実行コマンドを設定
以下を追加して、コンテナ起動時にApacheを前景で実行します。
1.8. Dockerfileの完成形
以下の内容が正しいか確認してください。

2. Apacheコンテナイメージのビルドと検証

2.1. コンテナイメージのビルド
以下のコマンドを実行してDockerfileをビルドします。
2.2. 作成したイメージの確認
以下のコマンドでイメージリポジトリを確認します。

3. Apacheコンテナの実行

3.1. コンテナの起動
以下のコマンドでコンテナを起動します。
3.2. 稼働中のコンテナの確認
以下を実行し、コンテナが稼働中であることを確認します。
3.3. Apacheサーバーの確認
以下を使用してサーバーが動作しているか確認します。

4. イメージのビルド確認

以下のコマンドでイメージが正しく作成されたことを確認します。

5. コンテナの停止と削除

以下のコマンドを使用します。

6. 作成したイメージの削除

以下を実行します。

7. 中間イメージの削除

以下を実行して中間イメージを削除します。

💡
「中間イメージ(intermediate image)」とは、Dockerのビルドプロセス中に作成される一時的なイメージのことです。Dockerfileの各命令(FROMRUNCOPYADDなど)が実行されるたびに、Dockerはその時点の状態を新しい「中間イメージ」として保存します。これらは最終的に必要ない場合が多く、ビルドが完了すると削除されます。
例えば、以下のようなDockerfileがあるとします:
この場合、ビルドプロセス中に以下の中間イメージが作成されます:
  1. FROM rhel7:7.5 で基盤となるRHEL7のイメージを使用し、このイメージが最初の中間イメージとなります。
  1. RUN yum -y update を実行後、この更新が適用された状態の中間イメージが作成されます。
  1. RUN yum install -y httpd を実行後、httpdがインストールされた状態の中間イメージが作成されます。
最終的に、docker build が成功すると、これらの中間イメージは最終的なイメージ(例えば、do285/apache)に統合されます。しかし、各ステップで生成された中間イメージは通常、ビルドプロセスが完了した後に不要なものとして削除されます。

演習完了

 

課題: カスタムコンテナイメージの作成

このラボでは、静的HTMLファイルをホストするApache Webサーバーコンテナを実行するDockerfileを作成します。Apacheのイメージは、カスタムのindex.htmlページを提供するRHEL 7.5のベースイメージに基づきます。

目標

静的HTMLファイルをホストするカスタムApache Webサーバーコンテナを作成できるようになります。

ラボ開始前の準備

以下のコマンドを実行して、関連するラボファイルをダウンロードし、ラボの実行に影響を与える実行中または停止中のコンテナがないことを確認します。

手順 1: Dockerfileの編集

  1. /home/student/DO285/labs/custom-images/ フォルダにある提供されたDockerfileを確認し、以下の仕様に合わせて編集します。

Dockerfileの編集内容:

  • ベースイメージ: rhel7:7.5
  • MAINTAINER命令で、作成者名とメールアドレスを設定
  • 環境変数PORTを8080に設定
  • RHELパッケージの更新と、YumリポジトリからApache(httpdパッケージ)をインストール
    • yum clean allを実行
  • Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)を変更し、ポート8080をリスンするように設定
  • /etc/httpd/logsおよび/run/httpdディレクトリの所有者をapache(UIDおよびGIDは48)に変更
  • 環境変数PORTで設定されたポートを公開
  • src/ フォルダの内容をApacheのDocumentRoot(/var/www/html/)にコピー
  • コンテナ内でApacheをフォアグラウンドで実行

手順 2: カスタムApacheイメージのビルド

  1. 作成したDockerfileを使用して、do285/custom-apacheという名前でカスタムApacheイメージをビルドします。
ビルドコマンド:
  1. ビルドが成功したか確認します:

手順 3: コンテナの作成と実行

  1. 以下の特徴でコンテナをデタッチモードで作成・実行します:
      • 名前: lab-custom-images
      • イメージ: do285/custom-apache
      • ポート転送: ホストのポート20080からコンテナのポート8080へ転送
実行コマンド:
  1. コンテナが実行中か確認します:

手順 4: サーバーがHTMLファイルを提供しているか確認

  1. curlコマンドを使用して、127.0.0.1:20080にアクセスし、HTMLファイルが正しく提供されているか確認します。
コマンド:
期待される出力:

手順 5: ラボの実行確認

以下のコマンドでラボが正しく実行されたことを確認します:

手順 6: コンテナの停止と削除

  1. 実行中のコンテナを停止し、削除します:

手順 7: カスタムコンテナイメージの削除

  1. 作成したカスタムコンテナイメージを削除します:

手順 8: 中間コンテナイメージの削除

  1. docker buildコマンドで生成された中間コンテナイメージを削除します:
これでラボは終了です。
 
 

まとめ

この章では以下のことを学びました:
  • コンテナイメージの作成には通常、Dockerfile を使用します。
  • Red HatDocker Hub が提供するDockerfileは、特定の言語や技術を使ったカスタムイメージ作成の出発点として便利です。
  • Source-to-Image (S2I) プロセスはDockerfileの代替手段を提供し、開発者が低レベルのOSコマンドを学ぶ必要をなくし、通常、より小さなイメージを生成します。
  • Dockerfileからイメージをビルドするのは、以下の3つのステップです:
      1. 作業ディレクトリを作成
      1. Dockerfileの仕様を書く
      1. docker build コマンドを使ってイメージをビルド
  • RUN 命令はイメージの内容を変更するために使用します。
  • 以下の命令は、イメージにメタデータを追加するために使用されます:
    • LABEL
    • MAINTAINER
    • EXPOSE
  • コンテナ起動時に実行されるデフォルトコマンドは、RUNENTRYPOINT 命令で変更できます。
  • 以下の命令は、コンテナ環境を管理するために使用されます:
    • WORKDIR
    • ENV
    • USER
  • VOLUME 命令は、コンテナ内でマウントポイントを作成します。
  • Dockerfileでは、コンテナイメージにリソースを含めるための2つの命令があります:
    • ADD
    • COPY
 
相关文章
RedHat EX200 本番近い試験問題集
Lazy loaded image
RedHat EX200 本番試験問題集(有料版)
Lazy loaded image
82- 第17章:導入総復習-3:OpenShiftにマルチコンテナデプロイのラボ
Lazy loaded image
81- 第17章:導入総復習-2:docker,KubernetesおよびOpenShiftのラボ
Lazy loaded image
80- 第17章:導入総復習-1:総合レビュー
Lazy loaded image
79- 第16章:OpenShiftの管理と監視-8:ラボ
Lazy loaded image
21- 第6章:マルチコンテナアプリケーションの展開-1:考慮事項の説明19- 第5章:カスタムコンテナイメージの作成-2:Dockerfileを使用した方法の説明
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
35条書面-64問-1
2025年6月13日
TOKYO自習島
2025年6月10日
平成26年秋期 午後問1
2025年6月6日
令和5年秋期 午後問1
2025年6月6日
令和2年秋期 午後問1
2025年6月6日
業務上の規制-87問-1
2025年6月4日
公告

🎉 欢迎访问我的博客 🎉

🙏 感谢您的支持 🙏

📅 本站自 2024年9月1日 建立,致力于分享在 IT・MBA・不动产中介 等领域的学习与实践,并推动 学习会 的自主开展。
📖 博客语言使用比例
🇯🇵 日语 90% 🇨🇳 中文 8% 🇬🇧 英语 2%

📚 主要内容

💻 IT・系统与开发

  • 系统管理:Red Hat 等
  • 容器与编排:Kubernetes、OpenShift
  • 云计算:AWS、IBM Cloud
  • AI 入门:人工智能基础与实践
  • 技术笔记与考证经验

🏠 不动产 × 宅建士

  • 宅建士考试笔记

🎓 MBA 学习笔记

  • 管理学、经济学、财务分析等

🔍 快速查找内容(标签分类)

由于网站目前没有专门的设计,可能会导致查找信息不便。为了更快找到你感兴趣的内容,推荐使用以下标签功能 进行搜索!
📌 定期更新,欢迎常来看看!
📬 有任何建议或想法,也欢迎留言交流!