第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 —開発:イメージ
- Red Hat Enterprise Linux Atomic Host: コンテナー開発の推奨プラクティス
- Dockerfile Reference
- Docker ドキュメント —はじめに、パート 2:コンテナー
- Red Hat Enterprise Linux Atomic Host: Getting Started with Containers
- Red Hat Container Catalog listing: Base Images