Docker とは

Docker を使用すると、アプリケーションをすばやく構築、テスト、デプロイできます。

Docker-Logo_Horizontel_279x131

Docker は、アプリケーションをすばやく構築、テスト、デプロイできるソフトウェアプラットフォームです。Docker は、コンテナと呼ばれる標準化されたユニットにソフトウェアをパッケージ化します。コンテナには、ライブラリ、システムツール、コード、ランタイムなど、ソフトウェアの実行に必要なすべてのものが含まれています。Docker を使用すると、どのような環境にもアプリケーションをすばやくデプロイおよびスケールでき、コードを実行することができます。

Docker を AWS で運用することで、開発者や管理者は、どのような規模の分散アプリケーションでも、高信頼性と低価格を実現した方法ですばやくビルド、出荷、実行できます。AWS は、オープンソースの Docker Community Edition (CE) とサブスクリプションベースの Docker Enterprise Edition (EE) の、どちらの Docker ライセンスモデルもサポートしています。

Docker はどのようにして動作するか

Docker はコードに標準的な実行方法を提供します。Docker はコンテナに対するオペレーティングシステムです。仮想マシンがサーバーハードウェアを仮想化 (直接管理する必要をなくす) ように、コンテナはサーバーのオペレーティングシステムを仮想化します。Docker は各サーバーにインストールされ、シンプルなコマンドを使ってコンテナを構築、開始、停止できます。

AWS FargateAmazon ECSAmazon EKSAWS Batch などの AWS サービスはどのような規模でも Docker コンテナの実行と管理を容易にします。

monolith_2-VM-vs-Containers

Docker をなぜ使うか

Docker を使うとコードを早く出荷でき、アプリケーションの動作を標準化し、コードをシームレスに移動し、またリソースの利用を改善して費用を節約できます。Docker を使うと、どこでも確実に実行できる単一のオブジェクトを取得できます。Docker のシンタックスはシンプルで分かりやすく、完全なコントロールが得られます。広く使われており、Docker と組み合わせてすぐに使えるツールおよび既製のアプリケーションとしての強力なエコシステムがあります。

100x100_benefit_deployment1

ソフトウェア出荷の数と速度を向上

Docker ユーザーは、平均すると非 Docker ユーザーの 7 倍以上の頻度でソフトウェアを出荷しています。Docker は別れた複数のサービスを必要に応じて何度でも出荷できます。

100x100_benefit_tools

オペレーションの標準化

コンテナ化された小さなアプリケーションでは、デプロイ、問題の特定、および解決のためのロールバックが容易になります。

100x100_benefit_migration

シームレスに移動

Docker ベースのアプリケーションは、ローカル開発マシンから AWS の本番デプロイへとシームレスに移行させることが可能です。

100x100_benefit_lowcost-affordable

コスト削減

Docker コンテナは各サーバーでより多くのコードを実行することが容易になり、利用率を上げ、コストを節約します。

Docker をいつ使うか

Docker コンテナは、最新のアプリケーションとプラットフォームを構築するためのコア構成要素として使用できます。Docker は分散型マイクロサービスアーキテクチャの構築と実行、標準化された連続的な統合とデリバリーパイプラインによるコードのデプロイ、高度にスケーラブルなデータ処理システムの構築、開発者のための完全マネージド型のプラットフォームの作成を容易にします。

100x100_benefit_ccontainers

マイクロサービス

Docker コンテナを用いた標準化されたコードデプロイを利用して、分散型のアプリケーションアーキテクチャを構築およびスケーリングします。

100x100_benefit_delivery

継続的インテグレーションとデリバリー

環境を標準化し、言語スタック間およびバージョン間の競合を解消することで、アプリケーションのデリバリーを高速化します。

AWS_Benefit Icon_AutomatedOperations

データ処理

ビッグデータ処理をサービスとして実現します。データと分析パッケージを、技術者以外のユーザーにも実行可能なようにポータブルなコンテナにパッケージ化します。

100x100_benefit_get-started-2

Containers as a Service

分散アプリケーションをビルドし、コンテンツおよび IT 管理された安全なインフラストラクチャとともに出荷します。

Docker についてのよくある質問

Q: Docker は無料ですか?

Docker コミュニティエディション (CE) は誰に対しても無料です。Docker のこのバージョンはオープンソースで、Windows、Mac、Linux などさまざまなプラットフォームで使えます。Docker CE はご自分のコンピュータ、または Amazon EC2 仮想マシンインスタンスにご自分でインストールできるほか、Amazon ECS 最適化 AMI で直ちに使い始めることもできます。

Docker エンタープライズエディション (EE) にはワークフロー管理やセキュリティのための機能が追加されており、AWS Marketplace でご購入いただける有料サブスクリプションです。

Q: Docker ではどのようなことができますか?

Docker を使用すると、どのような環境にもアプリケーションをすばやくデプロイおよびスケールでき、コードを実行することができます。これは、Docker がコンテナと呼ばれる標準化されたユニットにソフトウェアをパッケージ化し、このコンテナには、ライブラリ、システムツール、コード、ランタイムなど、ソフトウェアの実行に必要なすべてのものが含まれているため可能になります。

Q: Docker イメージとは何ですか?

Docker イメージとはコンテナを定義する読み取り専用のテンプレートです。イメージには、実行されるコードと、コードに必要なライブラリや依存関係の定義が含まれています。Docker コンテナはインスタンス化された (実行中の) Coker イメージです。AWS は Docker イメージを格納し、すばやく取り出すためのイメージレジストリである Amazon Elastic Container Registry (ECR) を提供しています。

Q: Docker Swarm、Kubernetes、Amazon ECS の違いは何ですか?

多くの Docker コンテナを実行する場合は、Docker Swarm、KubernetesAmazon Elastic Container Service (ECS) などのオーケストレーションツールを使用することで、何千 (または何百万) ものコンテナの開始、停止、監視が可能になります。 

Docker Swarm は Docker の作るコンテナオーケストレーションのためのソフトウェアで、お客様自身が実行、管理するものです。Kubernetes はコミュニティで維持される、一般的なオープンソースのコンテナオーケストレーションソフトウェアで、お客様自身が実行、管理するものです。Amazon EKS は、お使いのコンテナに対する Kubernetes コントロールプレーンの管理を提供して、AWS での Kubernetes の実行を容易にします。Amazon ECS は完全マネージド型の AWS サービスで、VPC、ロードバランシング、サービスディスカバリ、IAM ロールなどの AWS サービスと深く統合されて AWS でのコンテナの実行を容易にします。

Q: Docker と仮想マシンはどう違いますか?

仮想マシン (VM) はサーバーハードウェアを仮想化し (直接管理する必要をなくす)、コンテナはサーバーのオペレーティングシステムを仮想化します。Docker はコンテナに対するオペレーティングシステム (ランタイム) です。Docker エンジンはコンテナを実行しようとする各サーバーにインストールされ、コンテナを構築、開始、停止するために使えるシンプルなコマンドを提供します。

monolith_2-VM-vs-Containers

AWS での Docker の実行

AWS では、Docker のオープンソースソリューションと商用ソリューションの両方がサポートされています。AWS でコンテナを実行するにはいくつも方法があり、そのうち Amazon Elastic Container Service (ECS) は非常にスケーラブルで、高パフォーマンスのコンテナ管理サービスです。AWS Fargate は、インフラストラクチャのデプロイや管理をせずに本番環境でコンテナを実行できる Amazon ECS のテクノロジーです。 Amazon Elastic Container Service for Kubernetes (EKS) は AWS での Kubernetes の実行を容易にします。 AWS Fargate は、サーバーのプロビジョニングや管理をせずにコンテナを実行できる Amazon ECS のテクノロジーです。Amazon Elastic Container Registry (ECR) は Docker コンテナイメージの保存と管理を容易にする高可用性でセキュアなプライベートコンテナレポジトリで、保管時にイメージを暗号化して圧縮することで高速な取り出しとセキュリティを実現します。AWS Batch は、Docker コンテナを使って高度にスケーラブルなバッチプロセスワークロードを実行できます。

new_product_ecs

Amazon ECS

Amazon ECS は AWS クラウドで Docker コンテナを実行するための高度にスケーラブルで、高パフォーマンスのコンテナオーケストレーションサービスです。

new_product_fargate

AWS Fargate

AWS Fargate は、インフラストラクチャのデプロイや管理をせずに Docker コンテナを実行できる Amazon ECS のテクノロジーです。

new_product_eks

Amazon EKS

Amazon EKS を使用すると、Kubernetes マスターのインストールや操作をせずに、AWS で Kubernetes を簡単に実行できます。 

new_product_ecr

Amazon ECR

Amazon ECR は、Docker コンテナイメージの保存と管理を容易にする高可用性でセキュアなプライベートコンテナレポジトリです。

new_product_batch

AWS Batch

AWS Batch は、開発者、科学者、エンジニアが、AWS でコンテナを使ってバッチ処理ジョブを簡単に、効率的に実行できるようにします。

new_product_docker_cleanwhale

Docker EE は、Amazon EC2 環境に最適化された、エンタープライズコンテナ管理およびセキュリティ用のプラットフォームを提供します。

Docker EE は AWS Marketplace からのサブスクリプションとしてご利用いただけます。 すでに Docker EE のライセンスをお持ちですか? Docker EE Standard で AWS で起動

Docker を今すぐ始める

下記のステップに従えば、ほんの数分で AWS で Docker を使い始められます。
icon1
AWS アカウントにサインアップする
AWS 無料利用枠にすぐにアクセスできます。
icon2
Docker コンテナを 10 分でデプロイする
この簡単なチュートリアルで Docker について学習します

コンテナの詳細はこちら

よくある質問ページにアクセスする
構築の準備はできましたか?
Docker コンテナをデプロイする
ご不明な点がおありですか?
お問い合わせ