検索

19.6. Buildah を使用したゼロからのイメージの作成

download PDF

ベースイメージから開始する代わりに、最低限のコンテナーメタデータのみを保持する新しいコンテナーを作成できます。

スクラッチコンテナーからイメージを作成するときは、次のことを考慮してください。

  • scratch イメージに依存関係のない実行ファイルをコピーして、minimal コンテナーを機能させるため、いくつかの設定を行うことができます。
  • RPM データベースを初期化し、dnfrpm などのツールを使用するために、コンテナーにリリースパッケージを追加する必要があります。
  • パッケージを多数追加する場合は、scratch イメージではなく、標準の UBI イメージまたは UBI minimal イメージの使用を検討してください。

前提条件

  • container-tools メタパッケージがインストールされている。

手順

Web サービス httpd をコンテナーに追加し、実行するように設定できます。

  1. 空のコンテナーを作成します。

    # buildah from scratch
    working-container
  2. working-container コンテナーをマウントし、マウントポイントパスを scratchmnt 変数に保存します。

    # scratchmnt=$(buildah mount working-container)
    
    
    # echo $scratchmnt
    /var/lib/containers/storage/overlay/be2eaecf9f74b6acfe4d0017dd5534fde06b2fa8de9ed875691f6ccc791c1836/merged
  3. scratch イメージで RPM データベースを初期化し、redhat-release パッケージを追加します。

    # dnf install -y --releasever=8 --installroot=$scratchmnt redhat-release
  4. httphttpd サービスを scratch ディレクトリーにインストールします。

    # dnf install -y --setopt=reposdir=/etc/yum.repos.d \
          --installroot=$scratchmnt \
          --setopt=cachedir=/var/cache/dnf httpd
  5. $scratchmnt/var/www/html/index.html ファイルを作成します。

    # mkdir -p $scratchmnt/var/www/html
    # echo "Your httpd container from scratch works!" > $scratchmnt/var/www/html/index.html
  6. コンテナーから直接 httpd デーモンを実行するように working-container を設定します。

    # buildah config --cmd "/usr/sbin/httpd -DFOREGROUND" working-container
    # buildah config --port 80/tcp working-container
    # buildah commit working-container localhost/myhttpd:latest

検証

  1. ローカルストレージ内のイメージをリスト表示します。

    # podman images
    REPOSITORY                                 TAG     IMAGE ID      CREATED         SIZE
    localhost/myhttpd                          latest  08da72792f60  2 minutes ago   121 MB
  2. localhost/myhttpd イメージを実行し、コンテナーとホストシステム間のポートマッピングを設定します。

    # podman run -p 8080:80 -d --name myhttpd 08da72792f60
  3. Web サーバーをテストします。

    # curl localhost:8080
    Your httpd container from scratch works!

関連情報

  • システム上の buildah-config および buildah-commit man ページ
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.