用 LXC 建立的 Container 會被放在 /var/lib/lxc/[Container] 資料夾下,然後,在這個資料夾下會有一個 config 檔案,是這個 Container 的設定檔,另外,還有一個叫 rootfs 的資料夾,裡面看到的東西,就是你 attach 進 Container 後,在 / 資料夾下所看到的東西,所以,只要把檔案放進這個 rootfs 資料來下的任何一個地方,就可以從 Container 裡來存取哩 !
可把 Ubuntu 的任何資料夾掛到 Container 裡 |
以阿舍建立的 Container 的名字叫做 u1404a 為例,阿舍就可以直接到 /var/lib/lxc/u1404a/rootfs 資料夾來直接存取 u1404a 這個 Container 的檔案,如果阿舍用 cat 指令在 /var/lib/lxc/u1404a/rootfs/var/tmp 資料夾建立一個檔案的話,那麼當 attach 到 u1404a Container 時,就可以在 /var/tmp 資料夾看到阿舍新增的檔案哩 !
阿舍上面說的操作方式雖然還滿方便的,但是,如果你希望所有的 Container 都存取同一個資料夾時,就會不太方便哩 ! 所以,就要改用阿舍接下來要說明的這個方式來解決這個問題,而做法就是在 Ubuntu 上建立一個資料夾,然後,讓所有的 Container 都在啟動時,自動來掛載這個資料夾,這樣,Ubuntu 和 Container 就可以利用這個資料夾來交換檔案哩 !
以阿舍要讓 u1404a 這個 Container 裡的 /data 資料夾自動掛載 Ubuntu 的 /var/cache/lxc/data 資料夾為例,阿舍要先在 Ubuntu 的 /var/cache/lxc 資料夾下建立 data 資料夾,然後,再打開 u1404a Container 的設定檔 /var/lib/lxc/u1404a/config,加入下面這一行。
# u1404a 要改掉
lxc.mount = /var/lib/lxc/u1404a/fstab
上面這一行加好之後,請儲存後離開,接著,請新增 /var/lib/lxc/u1404b/fstab 這個檔案,也就是上面設定檔新增的檔案路徑和名稱,然後,在這個 fstab 檔裡加入下面這一行。
/var/cache/lxc/datd /var/lib/lxc/u1404a/rootfs/data none bind,create=dir
上面這一行的前面放的是 Ubuntu 的資料夾路徑,而後面放的則是 Conatiner 要掛載的掛載點,這個掛載點最好使用 Ubuntu 主機的絕對路徑 ( 有人說可以用 Container 的相對路徑,不過,阿舍沒試成功哩 ! ),同時,這個掛載點的資料夾可不用先建立,如果資料夾不存在的話,就會自動建立哩 !
上面提到的二個設定檔都調整好之後,如果 Container 還在啟動中,就要用下面第一行的指令來停止 Container,請不要使用 reboot 的方式,不然,新設定是不會生效的,而如果本來就沒有啟動,就直接用下面的第二行指令來啟動,起動完成後,用下面第三行的 attch 指令進入 Container 後,在 /data 資料夾建立的檔案或資料夾就會出現在 /var/cache/lxc/data 裡哩 !
$ sudo lxc-stop -n u1404a
$ sudo lxc-start -n u1404a -d
$ sudo lxc-attach -n u1404a
如果要讓另一個 Container 也載掛同樣的 /var/cache/lxc/data 資料夾的話,操作方式就和上面提到方式一模一樣,只是所有 "u1404a" 的部分都要換另一個 Container 的名稱哩 ! ...
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁