lxc-attachを使用してコンテナ外でコマンドを実行しますか?

lxc-attachを使用してコンテナ外でコマンドを実行しますか?

私は実行中のlxc ubuntuコンテナでより複雑なタスクを実行しようとしていますが、この簡単な例を使用して私の問題を説明できます。私が走るとき

sudo lxc-attach -n container1 -- echo "test" > test.txt

シェルスクリプトはtest.txt私のコンテナ内で見つけることを期待していましたが、代わりに私のホストコンピュータで見つけました!何が間違っていますか?

ベストアンサー1

少し遊んで問題を見つけました。今後も同じ問題にぶつかるしかない貧しい魂のために質問と回答をここに残します。

重要なのは、コマンド全体を実行する前ではなく、ファイルにアクセスするときにのみコンテナに接続することです。反直観的に、まずコンテナに接続してコマンドを実行するのではなく、シェルは最初にローカルで>ファイルを解釈して生成します。この問題を解決するためにtee必要なときにのみコンテナに接続します。解決策は次のとおりです。

echo "test" | sudo lxc-attach container1 -- tee test.txt

おすすめ記事