Cara membuat templat lokal untuk wadah linux dan menunjukkannya

8

Masalahnya adalah katakanlah saya ingin membuat wadah linux saya. Perintah pertama selalu adalah: -

sudo lxc-create -t debian -n p1

Biasanya 'ubuntu' untuk nama templat tetapi karena saya seorang fanboy Debian telah menggantinya dengan debian. Hasil akhirnya adalah sama, ia mulai mengunduh komponen dari debian.org melalui templat lxc-debian yang ditulis di / usr / share / lxc / templates.

$ 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 

Saya punya file gambar debian-wheezy.iso lokal. Apakah ada cara untuk mengatakannya daripada menggunakan gambar .iso lokal alih-alih pergi ke web.

shirish
sumber

Jawaban:

12

argumen yang disediakan untuk -tfile /usr/share/lxc/templates. Melihat lxc-debiantemplate, rutin yang melakukan unduhan dipanggil download_debian(), dan pekerjaan dilakukan oleh debootstrap:

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

Melihat halaman manual, debootstrapdapat menggunakan direktori lokal untuk file mirror daripada alamat jaringan

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

Jadi, untuk menggunakan data lokal Anda, pasang ISO Anda ke sistem file di suatu tempat; mendefinisikan variabel lingkungan MIRROR; memohon lxc-create.

File rilis ditandatangani tidak tampak dalam ISO saya mencoba, jadi saya harus juga melewati --no-check-gpgke debootstrap, yang berarti mengedit file template di /usr/share/lxc/templatesuntuk menambahkan argumen:

--- 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

Jadi, setelah disesuaikan:

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

bekerja.

jmtd
sumber