第13章 アプリケーションでのコンテナーの作成
以下のセクションでは、Docker 形式のコンテナーイメージをローカルで構築したアプリケーションから作成する方法について説明します。デプロイメントにオーケストレーションを使用する場合には、アプリケーションをコンテナーとして提供すると有益です。または、効果的にコンテナー化することで、依存関係の矛盾が解決されます。
前提条件/事前作業
- コンテナーを理解していること
- アプリケーションをソースからローカルで構築しておくこと
手順
使用するベースイメージを決定します。
注記Red Hat は、基盤として Red Hat Enterprise Linux を使用するベースイメージから開始することを推奨します。詳細情報は、「Base Image in the Red Hat Container Catalog」を参照してください。
- ワークスペース用のディレクトリーを作成します。
- アプリケーションが必要なファイルをすべて含むディレクトリーとして、アプリケーションを用意します。このディレクトリーをワークスペースディレクトリー内に配置します。
コンテナーの作成に必要な手順を説明する Dockerfile を記述します。
コンテンツの追加、デフォルトの実行コマンドの設定、必要なポートの開放および他の機能の追加など、Dockerfile の作成方法については、「Dockerfile Reference」を参照してください。
my-program/ディレクトリーを含む最小限の Dockerfile の例:FROM registry.access.redhat.com/rhel7 USER root ADD my-program/ .
この Dockerfile をワークスペースディレクトリーに配置します。
Dockerfile からコンテナーイメージを構築します。
# docker build . (...) Successfully built container-id
この手順では、新規作成されたコンテナーイメージの container-id をメモするようにしてください。
イメージにタグを追加して、コンテナーイメージの保存先のレジストリーを識別します。「Getting Started with Containers: Tagging Images」を参照してください。
# docker tag container-id registry:port/name
container-id は、以前の手順の出力に表示された値に置き換えます。
registry は、イメージをプッシュするレジストリーのアドレスに、port はレジストリーのポートに (必要に応じて省略)、name はイメージの名前に置き換えます。
たとえば、イメージの名前が myimage のローカルシステムで
docker-distributionサービスを使用してレジストリーを実行する場合には、タグ localhost:5000/myimage を使用することで、対象のイメージがレジストリーに配置する準備が整います。イメージの使用を希望する人が後でレジストリーからプルできるように、対象イメージをレジストリーにプッシュします。
# docker push registry:port/name
タグの部分を、以前の手順で使用した値と同じものに置き換えます。
独自の Docker レジストリーを実行する方法は、「Getting Started with Containers — Working with Docker registries」を参照してください。
その他のリソース
- OpenShift Container Platform: 「Creating Images」
- Red Hat Enterprise Linux Atomic Host: 「コンテナー開発の推奨プラクティス」
- 「Dockerfile Reference」
- Docker ドキュメント: 「Get Started, Part 2: Containers」
- Red Hat Enterprise Linux Atomic Host: 「コンテナーの使用ガイド」
- 「Base Images」: Red Hat Container Catalog listing

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.