LXC 部署上線期間常見問題彙總

問題一:執行lxc-create時,報錯configuration path '/usr/local/var/lib/lxc' not found,或者lxc-ls無效:

解決:mkdir –p /usr/local/var/lib/lxc


問題二:lxc-execute: No such file or directory -failed to open /proc/mounts

原因簡析:掛載cgroup文件系統時,把/proc文件系統玩壞了。不是每次都出現,個人筆記本和實驗節點都未出現此問題,但是上線節點出現了此問題。

解決: sudo mount --make-rprivate /


問題三:lxc啓動後內部進程PID與宿主機相獨立

解決:使用lxc-start命令啓動


問題四:lxc-start命令不能以daemon形式啓動進程

啓動腳本中最後一個進程不能以daemon形式啓動。例如

# loop1.sh

my_loop &

my_loop &

my_loop &

不可以使用lxc-start啓動


# loop2.sh

my_loop &

my_loop &

my_loop

可以使用lxc-start啓動


雖然腳本內部對daemon&)形式有限制,但是啓動lxc時,可以使用daemon形式,例如

lxc-start -n my_lxc sh loop2.sh &


問題五:使用lxc-execute後,報錯netstat: no support for `AF UNIX` on this system,/proc文件系統出現異常。

解決:切換到root用戶,系統會進行提示,根據提示,進行如下操作:mount -t proc none /proc,重新掛載/proc文件系統


問題六:lxc與內部進程的耦合關係

基本屬於緊耦合,關閉lxc(lxc-stop)後,內部進程被殺掉;關閉lxc內所有進程後,lxc也自動被關閉。

解決:使用lxc-attach,不過好像需要打內核補丁。本人未實際操作。


問題七:使用普通用戶啓動lxc

解決:lxc自帶命令lxc-setuidroot執行lxc-setuid後,普通用戶即可使用lxc-start lxc-stop等命令。


問題八:lxc-stop暴力關閉lxc。應用方希望關閉lxc時,應用程序可以不要暴力關閉,可以收到signum(如15)。這樣應用方可以先進行結果回收,然後再退出。

解決:使用lxc-kill命令,如使用命令lxc-kill -n lxc1 15,相當於kill -15關閉應用進程。


問題九:使用lxc啓動Java進程後,java調試工具(如jps/jstat)無法正常使用。

解決:修改代碼clone_newpid,參見另一篇專門博客《LXC Java調試命令無效與共享PID Namespace》


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章