クラウド初学者です。ぜひご助力いただけますと幸いです。
・質問内容
AWS ECSにてdockerコンテナをfargateで起動するアプリケーションを構築しています。
コンテナ内のOSでカーネルオプション(/etc/sysctl.confのnet.ipv4.tcp_timestamps)を変更する必要があります。
どのような方法で実現できるでしょうか。
(また、できれば末文の疑問点につきましても何かご教示いただけますと嬉しいです。)
・実施内容
1.ecsのタスク定義でentrypointを使用しsysctl -wコマンドでオプションを変更する
starting container process caused: exec: "sysctl": executable file not found in $PATH
エラーにより失敗
絶対パス(/usr/sbin/sysctl)を指定して実行したところno such file or directory
2.dockerfileにRUN sysctl -wを記述しdocker buildでイメージを作成
sysctl: setting key "net.ipv4.tcp_timestamps": Read-only file system
エラーで失敗
※情報
docker runでは--privilegedオプションを併用しsysctlコマンドを一緒に実行することで対応可能との情報を見つけたが、fargate起動での実施方法が不明のためENTRYPOINTを使用した
・疑問
上記の問題の原因として関係してくるのではないかと推測しているのですが、
fargateで起動するECSコンテナはどの程度の層で仮想化されているのでしょうか。
コンテナごとにカーネルが分かれているのか
どのようなデーモンが上がっているのか
コマンドはどこに配置されているのか
ローカルでdocker runしたコンテナとは異なるのか
…等
理解が浅くつたない質問ではありますが、どうかよろしくお願いします。
回答をお待ちしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/21 02:33