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の各命令(
FROM
、RUN
、COPY
、ADD
など)が実行されるたびに、Dockerはその時点の状態を新しい「中間イメージ」として保存します。これらは最終的に必要ない場合が多く、ビルドが完了すると削除されます。例えば、以下のようなDockerfileがあるとします:
この場合、ビルドプロセス中に以下の中間イメージが作成されます:
FROM rhel7:7.5
で基盤となるRHEL7のイメージを使用し、このイメージが最初の中間イメージとなります。
RUN yum -y update
を実行後、この更新が適用された状態の中間イメージが作成されます。
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の編集
/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イメージのビルド
- 作成したDockerfileを使用して、
do285/custom-apache
という名前でカスタムApacheイメージをビルドします。
ビルドコマンド:
- ビルドが成功したか確認します:
手順 3: コンテナの作成と実行
- 以下の特徴でコンテナをデタッチモードで作成・実行します:
- 名前:
lab-custom-images
- イメージ:
do285/custom-apache
- ポート転送: ホストのポート20080からコンテナのポート8080へ転送
実行コマンド:
- コンテナが実行中か確認します:
手順 4: サーバーがHTMLファイルを提供しているか確認
curl
コマンドを使用して、127.0.0.1:20080
にアクセスし、HTMLファイルが正しく提供されているか確認します。
コマンド:
期待される出力:
手順 5: ラボの実行確認
以下のコマンドでラボが正しく実行されたことを確認します:
手順 6: コンテナの停止と削除
- 実行中のコンテナを停止し、削除します:
手順 7: カスタムコンテナイメージの削除
- 作成したカスタムコンテナイメージを削除します:
手順 8: 中間コンテナイメージの削除
docker build
コマンドで生成された中間コンテナイメージを削除します:
これでラボは終了です。
まとめ
この章では以下のことを学びました:
- コンテナイメージの作成には通常、Dockerfile を使用します。
- Red Hat や Docker Hub が提供するDockerfileは、特定の言語や技術を使ったカスタムイメージ作成の出発点として便利です。
- Source-to-Image (S2I) プロセスはDockerfileの代替手段を提供し、開発者が低レベルのOSコマンドを学ぶ必要をなくし、通常、より小さなイメージを生成します。
- Dockerfileからイメージをビルドするのは、以下の3つのステップです:
- 作業ディレクトリを作成
- Dockerfileの仕様を書く
docker build
コマンドを使ってイメージをビルド
- RUN 命令はイメージの内容を変更するために使用します。
- 以下の命令は、イメージにメタデータを追加するために使用されます:
- LABEL
- MAINTAINER
- EXPOSE
- コンテナ起動時に実行されるデフォルトコマンドは、RUN や ENTRYPOINT 命令で変更できます。
- 以下の命令は、コンテナ環境を管理するために使用されます:
- WORKDIR
- ENV
- USER
- VOLUME 命令は、コンテナ内でマウントポイントを作成します。
- Dockerfileでは、コンテナイメージにリソースを含めるための2つの命令があります:
- ADD
- COPY
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/145d7ae8-88e2-8055-87e7-c3b4e5777c87
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章