AWS ECRにDockerイメージがあり、環境でインスタンスを作成するためにAWSAMIに変換したいと考えています。
DockerコンテナでAMIを使用しようとする理由
一部のテキストファイルのm4.xlarge
インスタンス内のDockerコンテナーで、計算量の多いMLタスクを実行する必要がありました。ただし、Dockerを使用すると、インスタンスのCPU使用率が100%に達し、スクリプトが途中で強制終了されます。
ただし、Dockerの外部から同じインスタンスで正常に実行されています。
そのため、DockerからAMIに移行したいと思いますが、Dockerを活用して、環境の作成とローカルでのテストの速度を向上させたいと考えています。
それで、DockerイメージからAMIを作成することは可能ですかこれをテストしてECSレジストリにデプロイしますか?
Dockerイメージまたはdockerに問題または設定ミスがあるように思われます。インスタンスがDockerの外部で同じスクリプトを問題なく実行するとおっしゃいましたか?次に、実行中のスクリプトを使用してインスタンスのAMIを作成する方が適切であり、Dockerはまったく必要ありません。 Docker内でスクリプトを実行すると、Dockerの構成によってCPUが制限される可能性がありますが、ホストCPUが100%になり、スクリプトが強制終了されるわけではありません。同じイメージでdockerコンテナーを実行してみてください。ただし、sleep10000を実行すると、コンテナー内に移動して目的のスクリプトを実行し、何が失敗しているかを確認できます。
DockerファイルからAWSAMIを作成/ビルドできるオープンソースツールはありますが、DockerイメージからAWS AMIを直接作成する方法はありませんが、サポートされている命令はENV、RUN、COPY、ADDのみであり、他の命令は無視されます。
DockerファイルからAWS AMIを構築するためのオープンソースツール
https://github.com/mickep76/docker-build-AMI
https://pypi.python.org/pypi/docker-build-AMI/0.1.
したがって、実際に試してみたい場合は、Dockerイメージから適切なDockerファイルを作成してください。そのためには、次のリンクを参照できます