第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 ドキュメント: 「Get Started, Part 2: Containers」
- Red Hat Enterprise Linux Atomic Host: 『Getting Started with Containers』
- Red Hat Container Catalog listing: 「Base Images」
このページには機械翻訳が使用されている場合があります (詳細はこちら)。