LXC 來賓作業系統安裝
我創建了一個使用 Centos 6.8 作為主機作業系統的 LXC 虛擬化物理伺服器。
現在,當我使用 Centos 的預設模板創建來賓 VM 時,它正在創建使用 Centos 6.8 作為來賓作業系統的 VM。
我想創建一個使用 Centos 7.2 版本的 VM 作為來賓作業系統。這可能嗎?
我已完成以下步驟來創建 VM 並啟動。
- 創建了 centos 模板的副本,並在模板中硬編碼了 7.2 版本。(據我了解,它會檢查 /etc/os-release 的 CPE ID)
- 創建了一個來賓 VM,指向創建的這個新模板。(Centos 7.2 版本已下載並放置在 LXC 記憶體中)
- 來賓 VM 已創建。我將配置文件中的網路連結更改為橋接網路。
- 我啟動了來賓 VM,但我只能看到 systemd 程序已啟動(使用
pstree
命令),沒有為 VM 分配 IP 地址,我無法登錄來賓 VM。在這個環境中,我需要一個帶有 Centos 7.2 的 VM。請指導如何實現這一目標。
我調整了 CentOS 的 lxc 模板以支持 CentOS 7。
我創建的 lxc 模板的副本放在https://github.com/nirmalraj17/lxc/blob/master/templates/lxc-centos.in
這樣做是因為有一些與 OS 版本 7 相關的步驟,這些步驟在目前的 lxc-centos 模板中沒有提到,而在 lxc-oracle 模板中提到了。我從 lxc-oracle 中取出了相關部分並將其添加到目前的 lxc-centos 模板中,並創建了一個名為 lxc-centos-7 的新模板。
然後使用命令創建一個lxc容器
lxc-create -n centos7 -t /usr/local/share/lxc/templates/lxc-centos-7 -- -R 7
這將下載發布版本 7 所需的必要文件
在此之後,如果您嘗試啟動 LXC 容器,您將收到**“$$ !!!!!! $$無法分配管理器對象,凍結。”**當您嘗試啟動時。
現在在 /cgroup 下創建一個目錄systemd
使用以下命令掛載。
mount -t cgroup -o none,name=systemd cgroup /cgroup/systemd
現在如果您啟動 LXC 容器並嘗試登錄,您將收到錯誤消息“伺服器拒絕分配 pty ”
為了避免這種情況,請停止容器並創建一個 shell 腳本來執行必要的操作。
[root@centos ~]# vi /usr/local/var/lib/{container_name}/rooftfs/usr/local/bin/device_initiation.sh #!/bin/bash mknod -m 600 /dev/console c 5 1 2>/dev/null mknod -m 666 /dev/null c 1 3 2>/dev/null mount -n -t tmpfs none /dev 2>/dev/null mknod -m 622 /dev/console c 5 1 2>/dev/null mknod -m 666 /dev/null c 1 3 2>/dev/null mknod -m 666 /dev/zero c 1 5 2>/dev/null mknod -m 666 /dev/ptmx c 5 2 2>/dev/null mknod -m 666 /dev/tty c 5 0 2>/dev/null mknod -m 444 /dev/random c 1 8 2>/dev/null mknod -m 444 /dev/urandom c 1 9 2>/dev/null chown root:tty /dev/{console,ptmx,tty} 2>/dev/null ln -s /proc/self/fd /dev/fd 2>/dev/null ln -s /proc/self/fd/0 /dev/stdin 2>/dev/null ln -s /proc/self/fd/1 /dev/stdout 2>/dev/null ln -s /proc/self/fd/2 /dev/stderr 2>/dev/null ln -s /proc/kcore /dev/core 2>/dev/null mkdir /dev/pts 2>/dev/null mkdir /dev/shm 2>/dev/null mount -t devpts -o gid=4,mode=620 none /dev/pts 2>/dev/null mount -t tmpfs none /dev/shm 2>/dev/null
由於我們將此文件放在 usr/local/bin 中,因此可以直接從系統訪問此命令。
現在要啟動伺服器並執行這個 shell 腳本,我已經創建了一個 shell 腳本。
[root@centos ~]# vi startup_centos7.sh #!/bin/bash lxc-start -n centos7 lxc-attach -n centos7 device_initiation.sh exit
執行腳本後,CentOS 7 將啟動,您將能夠順利登錄。
完成上述步驟後,我在新的 LXC 容器上安裝了工作 CentOS 7.3 版本。