Come creare un modello locale per un contenitore Linux e puntare a quello


8

Il fatto è che vogliamo creare il mio contenitore Linux. Il primo comando è invariabilmente: -

sudo lxc-create -t debian -n p1

Di solito è 'Ubuntu' per il nome del modello, ma dato che sono un fan di Debian l'ho sostituito con Debian. Il risultato finale di entrambi è lo stesso, inizia a scaricare i componenti da debian.org tramite il modello lxc-debian scritto in / 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 

Ho un file di immagine debian-wheezy.iso locale. C'è un modo per dirgli di usare invece l'immagine .iso locale invece di andare sul web.

Risposte:


12

l'argomento fornito a -tè un file in /usr/share/lxc/templates. Guardando il lxc-debianmodello, viene chiamata la routine che esegue il download download_debian()e il lavoro viene eseguito da debootstrap:

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

Guardando la manpage, è debootstrappossibile utilizzare una directory locale per i file mirror anziché un indirizzo di rete

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

Quindi, per usare i tuoi dati locali, monta la tua ISO sul filesystem da qualche parte; definire la variabile d'ambiente MIRROR; invocare lxc-create.

Il file di rilascio firmato non sembrava essere nell'ISO che ho provato, quindi ho dovuto passare anche --no-check-gpga debootstrap, il che significava modificare il file modello /usr/share/lxc/templatesper aggiungere l'argomento:

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

Quindi, una volta regolato:

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

lavorato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.