アプリケーションを独立したタスク、またはプロセスに分離することで、コンテナを使って分散アプリケーションを作ることができます(マイクロサービスなど)。たとえば、ウェブサーバー、アプリケーションサーバー、メッセージキュー、バックエンドワーカーに対して別々のコンテナを持つことができます。コンテナは単一のタスクまたはプロセスを実行するのに適しています。このため、スケールアップ、およびスケールダウンするときに、コンテナをタスクのベースユニットとして使えます。アプリケーションの各コンポーネントを、異なるコンテナイメージで作ることができます。Docker コンテナはプロセスを分離するため、ユーザーは各コンテナで実行しているプログラミング言語やライブラリに関係なく、異なるコンポーネントを並列して実行、およびスケールできます。
Amazon EC2 Container Service
プレビューにサインアップ12 か月間の AWS 無料利用枠と、24 時間年中無休のカスタマーサービスやサポートフォーラムなどの AWS の基本的なサポート機能を利用できます。
ジョブをコンテナにパッケージ化し、これを共有クラスターにデプロイすることで、バッチと ETL ジョブに対してコンテナを使うことができます。コンテナは分離されているため、異なるバージョンの同じジョブ、または複数のジョブを同じクラスター上で、または同じインスタンス上で実行できます。また、クラスター容量をアプリケーションなどの、他のプロセスと共有し、クラスターの負荷の変動を活用することもできます。ジョブを素早く開始し、需要に応じて動的にジョブを拡大することで、リソースの使用率を改善できます。
Docker はイメージバージョニング用のシステムを提供するため、継続的な統合と継続的なデプロイに対してコンテナを使えます。ビルドプロセスをセットアップしてリポジトリからコードを取得、構築、Docker イメージにパッケージ化し、新しく作成されたイメージをイメージリポジトリにプッシュできます。続いて、デプロイプロセスにリポジトリから新しいイメージを取得させ、アプリケーションをテストし、プロダクションサーバーにデプロイできます。Docker デーモンは開発、ステージング、プロダクションマシンの間で同一なため、開発環境では稼働するものの、本稼働で失敗するアプリケーションを避けることができます。