Shell-Script

使用 lxc-attach 在容器外部執行命令?

  • February 16, 2021

我正在嘗試在正在執行的 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

引用自:https://unix.stackexchange.com/questions/634673