So erstellen Sie eine lokale Vorlage für einen Linux-Container und zeigen darauf

8

Nehmen wir an, ich möchte meinen Linux-Container erstellen. Der erste Befehl lautet ausnahmslos:

sudo lxc-create -t debian -n p1

Es ist normalerweise 'Ubuntu' für den Vorlagennamen, aber da ich ein Debian-Fan bin, habe ich ihn durch Debian ersetzt. Das Endergebnis von beiden ist das gleiche. Es beginnt mit dem Herunterladen der Komponenten von debian.org über die lxc-debian-Vorlage, die unter / usr / share / lxc / templates geschrieben ist.

$ 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 

Ich habe eine lokale debian-wheezy.iso-Bilddatei. Gibt es eine Möglichkeit, das lokale ISO-Image zu verwenden, anstatt ins Internet zu gehen?

shirish
quelle

Antworten:

12

Das Argument, an das geliefert wird, -tist eine Datei in /usr/share/lxc/templates. Wenn Sie sich die lxc-debianVorlage ansehen, wird die Routine aufgerufen download_debian(), die das Herunterladen ausführt , und die Arbeit wird ausgeführt von debootstrap:

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

Wenn Sie sich die Manpage ansehen, debootstrapkönnen Sie ein lokales Verzeichnis für die Spiegeldateien anstelle einer Netzwerkadresse verwenden

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

Um Ihre lokalen Daten zu verwenden, hängen Sie Ihre ISO irgendwo in das Dateisystem ein. Definieren Sie die Umgebungsvariable MIRROR. aufrufen lxc-create.

Die signierte Release-Datei schien nicht in der ISO zu sein, die ich versucht habe, daher musste ich auch --no-check-gpgan übergeben debootstrap, was bedeutete, dass die Vorlagendatei bearbeitet wurde /usr/share/lxc/templates, um das Argument hinzuzufügen:

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

Also, einmal angepasst:

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

hat funktioniert.

jmtd
quelle