Shell-Script
使用 lxc-attach 在容器外部執行命令?
我正在嘗試在正在執行的 lxc ubuntu 容器中執行更複雜的任務,但是可以使用這個簡單的範例來解釋我的問題。當我跑
sudo lxc-attach -n container1 -- echo "test" > test.txt
在 shell 腳本中,我希望
test.txt
在我的容器中找到它,但我卻在我的主機上找到它!出了什麼問題?
在玩了一些之後,我發現了這個問題。我將我的問題和答案留在這裡,以供將來不可避免地遇到相同問題並找到此問題的可憐的靈魂。
關鍵是僅在訪問文件時附加到容器,而不是在執行整個命令之前。與直覺相反,shell 不會先連接到容器並執行命令,而是
>
先在本地解釋並創建文件。為了解決這個問題,我們tee
只在需要時才連接到容器。解決方案如下。echo "test" | sudo lxc-attach container1 -- tee test.txt