第13章 アプリケーションでのコンテナーの作成


以下のセクションでは、Docker 形式のコンテナーイメージをローカルで構築したアプリケーションから作成する方法について説明します。デプロイメントにオーケストレーションを使用する場合、アプリケーションをコンテナーとして利用可能にすることにはいくつかの利点があります。または、効果的にコンテナー化により、依存関係の衝突が解決されます。

前提条件

  • コンテナーを理解していること
  • アプリケーションをソースからローカルに構築していること

手順

  1. 使用するベースイメージを決定します。

    注記

    Red Hat は、基盤として Red Hat Enterprise Linux を使用するベースイメージの使用から開始することを推奨します。詳細情報は、Base Image in the Red Hat Container Catalog を参照してください。

  2. ワークスペース用のディレクトリーを作成します。
  3. アプリケーションの必要なファイルをすべて含むディレクトリーとして、アプリケーションを用意します。このディレクトリーをワークスペースディレクトリー内に配置します。
  4. コンテナーの作成に必要な手順を記述する Dockerfile を作成します。

    コンテンツの追加、デフォルトの実行コマンドの設定、必要なポートの開放および他の機能の追加などの、Dockerfile の作成方法については、Dockerfile Reference を参照してください。

    この例では、my-program/ ディレクトリーを含む最小限の Dockerfile を示しています。

    FROM registry.access.redhat.com/rhel7
    USER root
    ADD my-program/ .

    この Dockerfile をワークスペースディレクトリーに配置します。

  5. Dockerfile からコンテナーイメージを構築します。

    # docker build .
    (...)
    Successfully built container-id

    この手順では、新規に作成されたコンテナーイメージの container-id をメモするようにしてください。

  6. イメージにタグを追加して、コンテナーイメージの保存先のレジストリーを識別します。Getting Started with Containers: Tagging Images を参照してください。

    # docker tag container-id registry:port/name

    container-id を、直前の手順の出力に表示された値に置き換えます。

    registry を、イメージをプッシュするレジストリーのアドレスに、port をレジストリーのポートに (必要に応じて省略)、name をイメージの名前に置き換えます。

    たとえば、イメージの名前が myimage のローカルシステムで docker-distribution サービスを使用してレジストリーを実行している場合に、タグ localhost:5000/myimage を使用することで、イメージのレジストリーへのプッシュが可能になります。

  7. イメージをレジストリーにプッシュし、後でそのレジストリーからプルできるようにします。

    # docker push registry:port/name

    タグの部分を、直前の手順で使用した値と同じ値に置き換えます。

    独自の Docker レジストリーを実行するには、Getting Started with Containers — Working with Docker registries を参照してください。

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.