2015-03-08

Ubuntu 用下載範本建立 LXC Container

最近,阿舍在看 LXC 和 Container 的東西,然後,看到阿舍之前 寫過如何用 lxc 來建立虛擬機器,不過,那個時候阿舍只有寫用 lxc 內建的範本的方式來建立 Container,而沒有提到另外的方式,就是 lxc 也和 debootstrap 或 docker 一樣,可以透過下載指定範本的方式來安裝和建立不同的 Ubuntu 版本和 Linux 發行版本哩 !



阿舍 ! 阿舍 ! 那個 lxc 提供的範本檔不是已經有各種 Linux 發行版本的範本檔了嗎 ? 為什麼還要從網路上下載範本檔呢 ? 喔 ! ... 這個 ... 阿舍也不是很清楚哩 ! 阿舍只是知道,網路上提供的範本檔的種類和版本比較多,讓阿舍可以有更多東西來選擇和安裝,所以,阿舍就去研究了一下哩 ! ...

從網路下載並建立 Container 的方法,一樣是用 lxc-create 這支程式,差別只是在於 -t 選項後面要改成 download,之後,除了給定 Container 的名稱外,還要再加上「--」之後,提供要下載的範本檔的發行版本名稱、版本及架構等三項資訊,以阿舍要下載安裝 Ubuntu 14.04 版來建立一個名稱叫做「u1404a」的 container 為例,操作指令就是下面這一行哩 !

$ sudo lxc-create -t download -n u1404a -- -d ubuntu -r trusty -a amd64

接下來,就是讓阿舍摸了好久的部份了哩 ! 在下載和建立完成後,阿舍就高高興興的用 lxc-start 來啟動這個新建的 Container,然後,就出現登入的提示訊息,於是,阿舍就很自以為的輸入 ubunut,結果,根本就登入進去哩 !

每個 Container 資料夾裡的 rootfs 就是它的根目錄哩 !

後來,阿舍才知道,這種在網路下載的範本檔是沒有預設的使用者帳號的,而 root 的密碼也是要自己設定的,可是 ... 既然登不進行,那要怎麼設定呢 ? ... 其實,在用下載安裝完成後,是有出現這樣的一條訊息「Use lxc-attach or chroot directly into the rootfs to set a root password or create user accounts.」,只是阿舍都沒注意看哩 !

因此,要先用 lxc-start 啟動 Container 之後,再用 lxc-attach 進入 Conatiner 來利用 passwd 指令設定 root 密碼,操作方式如下。


$ sudo lxc-start -n u1404a -d

$ sudo lxc-attach -n u1404a

root@u1404a:/# passwd


另外,如果和阿舍一樣,不想用 attach 的方式的話,則可以用 chroot 的方式來處理,用 chroot 的方式不需要先啟動 Conatiner,直接用 chroot 切進去下 passwd 指令即可哩 !


$ sudo chroot /var/lib/lxc/u1404a /bin/bash

root@xyz:/# passwd

如果不想用 root 的話,就把上面的 passwd 的步驟改成 adduser,然後,再把這個 使用者設定成 sudoer 囉 !


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁