第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」を参照してください。

関連資料