如何为Linux容器创建本地模板并指向该模板


8

事情是说我想做我的linux容器。第一个命令总是:

sudo lxc-create -t debian -n p1

模板名称通常为“ ubuntu”,但由于我是Debian迷,所以已将其替换为debian。两者的最终结果都是相同的,它开始通过编写在/ usr / share / lxc / templates上的lxc-debian模板从debian.org下载组件。

$ sudo lxc-create -t debian -n debian-n
[sudo] password for shirish: 
debootstrap is /usr/sbin/debootstrap
Checking cache download in /var/cache/lxc/debian/rootfs-wheezy-amd64 ... 
Downloading debian minimal ...
I: Retrieving Release 

我确实有一个本地的debian-wheezy.iso映像文件。有没有一种方法可以告诉它使用该本地.iso映像而不是上网。

Answers:


12

提供给的参数-t是中的文件/usr/share/lxc/templates。看一下lxc-debian模板,执行下载的例程称为download_debian(),工作由debootstrap以下人员执行:

    debootstrap --verbose --variant=minbase --arch=$arch \
    --include=$packages \
    "$release" "$cache/partial-$release-$arch" $MIRROR

查看联机帮助页,debootstrap可以将本地目录用于镜像文件而不是网络地址

…MIRROR can be an http:// or https:// URL, a file:/// URL,
or an ssh:/// URL.

因此,要使用本地数据,请将ISO挂载到文件系统中的某个位置。定义MIRROR环境变量;调用lxc-create

签名的发行文件似乎不在我尝试的ISO中,因此我还必须传递--no-check-gpgdebootstrap,这意味着要在其中编辑模板文件/usr/share/lxc/templates以添加参数:

--- lxc-debian~ 2015-03-04 10:04:12.628619962 +0000
+++ lxc-debian  2015-03-04 10:04:17.420619851 +0000
@@ -232,7 +232,6 @@
     # download a mini debian into a cache
     echo "Downloading debian minimal ..."
     debootstrap --verbose --variant=minbase --arch=$arch \
+   --no-check-gpg \
         --include=$packages \
         "$release" "$cache/partial-$release-$arch" $MIRROR
     if [ $? -ne 0 ]; then

因此,一旦调整:

# mount -o loop debian-7.8.0-amd64-CD-1.iso /mnt
# export MIRROR=file:///mnt
# lxc-create -t debian -n p1 -- -r wheezy

工作了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.