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
18-Red Hat DO285 第5章:カスタムコンテナイメージの作成-1:コンテナイメージの管理ラボ
Lazy loaded image
17-Red Hat DO285 第4章:コンテナイメージの管理-4:コンテナイメージの管理ラボ
Lazy loaded image
16-Red Hat DO285 第4章:コンテナイメージの管理-3:ガイド付き演習
Lazy loaded image
15-Red Hat DO285 第4章:コンテナイメージの管理-2:コンテナイメージの操作
Lazy loaded image
03-IBM Cloud 柔らか層本 メモ:Classic Infrastructure19-Red Hat DO285 第5章:カスタムコンテナイメージの作成-2:Dockerfileを使用した方法
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
02-生成AIパスポート試験対策:第2章「生成AI」
2025-2-1
01-生成AIパスポート試験対策:第1章「人口知能」
2025-2-1
究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
2025-1-27
不要再傻傻的直接买NISA啦
2025-1-27
Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
2025-1-24
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
2025-1-22
公告
🎉欢迎访问我的博客🎉
- 感谢您的支持 --
本站点于2024/09/01建立
👏主要分享IT相关主题👏
系统管理:
Redhat…
容器和编排:
Kubernetes、Openshift…
云计算:
AWS、IBM…
AI入门
以及技术笔记和考证经验
定期更新,欢迎互动。
感谢访问!
快速浏览相关标签