私が試したこと:
Windows Server 2012 R2のツールボックス。仮想ボックスを許可するためにHyper-Vを無効にしました。それは物理的な経歴に関するものなので、仮想化を有効にすることはできません。
Windows Server 2016 w/Containers EC2にDocker EEをインストールしました。正しくインストールされています。デーモンが実行されています。しかし、hello-world:nanoserverの横にある単一のイメージをプルすることはできません。そのため、windowsservercoreとnanoserverを探しましたが、古くなっているため動作しません。 Docker.comのfrizzmのリポは、プルしようとしても機能しません。
新しいWindows Server 2016インスタンスで再び開始しました。 Hyper-Vを無効にしてToolBoxをインストールしました。動作しません。
AWSのWindowsサーバー環境でDockerを実行するにはどうすればよいですか?
すべてのvid/tutsはとてもシンプルに見えますが、確実に機能させることはできません。私は途方に暮れています。
Windows ServerでDockerを利用するために、実際にDocker for Windows(旧称Docker Toolbox)をインストールする必要はありません。
まず、Windows Server 2016プラットフォームには、WindowsコンテナーとHyper-Vコンテナーの2種類のコンテナーがあることを理解することが重要です。
Windows上のLinuxコンテナー(LCOW)と呼ばれるHyper-Vの上で実行する3番目のオプションもありますが、Windowsコンテナーについて具体的に質問しているようなので、ここでは説明しません。
ここにあなたが見ることができるいくつかのオプションがあります:
AWSでWindows Hyper-Vコンテナーを実行する必要がある場合、またはDocker for WindowsでLinuxコンテナーを実行する場合は、ベアメタルインスタンスであるi3.metal
EC2インスタンスタイプをプロビジョニングできます。 Windows Server 2016をi3.metal
インスタンスタイプにデプロイし、Hyper-Vをインストールし、Windows用のDockerをインストールできます。これにより、(Hyper-V Linuxゲストの下で)Linuxコンテナー、Hyper-Vコンテナー、およびWindowsコンテナーの両方を実行できるようになります。
Amazonは、EC2インスタンスをデプロイできるAmazon Machine Image(AMI)を提供しています。これには、Amazon Elastic Container Service(ECS)の最適化が含まれています。 ECSはクラウドベースのクラスタリングサービスであり、EC2で実行されている一連のワーカーノード全体にコンテナベースのアプリケーションをデプロイできます。
一般的に、ECSとECSに最適化されたAMIを一緒に使用して、アプリケーションをデプロイする本番環境規模のクラスターを構築します。
「Windows Server 2016 with Containers」AMIも利用可能です。これは、ECS最適化AMIとは異なりますが、実行のサポートが含まれていますWindows Server 2016上のDockerコンテナー。このAMIを使用して新しいEC2インスタンスをデプロイするだけで、それにログインし、Dockerコマンドを発行してWindowsコンテナーを起動できます。 Windowsコンテナーを初めて使用する場合は、このオプションが最も簡単なオプションです。
EC2インスタンスはネストされた仮想化を許可しません(EC2インスタンス自体が仮想マシンです)。 Docker for Windowsは内部でHyper-Vを使用し、Docker Toolboxは内部でVirtualboxを使用するため、これらのソリューションはどちらも実行可能ではありません。
Windows EC2インスタンスで実行できたとしても、WindowsのDockerがSamba経由でDocker VMにファイルをマウントするため、パフォーマンスはそれほど高くありません。あまり速くありません。
Linuxコンテナを実行する場合は、おそらくLinux上で実行する必要があります。セットアップは非常に速く、Docker for Windowsで使用していたすべてのDockerコマンドは引き続き機能します。
ウィンドウ上でドッカーを実行することが可能です。次のコマンドを実行して設定します。
docker-machine create --driver amazonec2 aws01
このコマンドが実行することは、新しいEC2 Linuxインスタンスを作成し、DockerをそのLinuxインスタンスに接続することです。 DockerコマンドがWindowsインスタンスで実行されると、Dockerコマンドは実際にはLinuxインスタンスに送信されて実行され、結果はWindows EC2インスタンスに返されます。
ここにDockerのドキュメントがあります。これがお役に立てば幸いです。 https://docs.docker.com/machine/drivers/aws/#aws-credential-file