Comment créer un modèle local pour un conteneur Linux et pointer vers cela

8

Le truc, c'est que je veux faire mon conteneur Linux. La première commande est invariablement: -

sudo lxc-create -t debian -n p1

C'est généralement 'ubuntu' pour le nom du modèle mais comme je suis fan de Debian, je l'ai remplacé par debian. Le résultat final de l'un ou l'autre est le même, il commence à télécharger les composants depuis debian.org via le modèle lxc-debian écrit dans / 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 

J'ai un fichier image debian-wheezy.iso local. Existe-t-il un moyen de lui dire d'utiliser à la place cette image .iso locale au lieu d'aller sur le Web.

shirish
la source

Réponses:

12

l'argument fourni -test un fichier dans /usr/share/lxc/templates. En regardant le lxc-debianmodèle, la routine qui effectue le téléchargement est appelée download_debian()et le travail est effectué par debootstrap:

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

En regardant la page de manuel, vous debootstrappouvez utiliser un répertoire local pour les fichiers miroir plutôt qu'une adresse réseau

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

Donc, pour utiliser vos données locales, montez votre ISO quelque part sur le système de fichiers; définir la variable d'environnement MIRROR; invoquer lxc-create.

Le fichier de version signée ne semblait pas être dans l'ISO que j'ai essayé, j'ai donc dû également passer --no-check-gpgà debootstrap, ce qui signifiait éditer le fichier modèle /usr/share/lxc/templatespour ajouter l'argument:

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

Donc, une fois ajusté:

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

travaillé.

jmtd
la source