Cómo hacer una plantilla local para un contenedor de Linux y apuntar a eso


8

La cosa es que digamos que quiero hacer mi contenedor de Linux. El primer comando es invariablemente:

sudo lxc-create -t debian -n p1

Por lo general, es 'ubuntu' para el nombre de la plantilla, pero como soy fanático de Debian, lo he reemplazado con debian. El resultado final de cualquiera de los dos es el mismo, comienza a descargar los componentes de debian.org a través de la plantilla lxc-debian escrita en / 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 

Tengo un archivo de imagen local debian-wheezy.iso. ¿Hay alguna manera de decirle que use esa imagen local .iso en lugar de ir a la web?

Respuestas:


12

el argumento suministrado -tes un archivo en /usr/share/lxc/templates. Mirando la lxc-debianplantilla, se llama a la rutina que realiza la descarga download_debian(), y el trabajo lo realiza debootstrap:

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

Al mirar la página de manual, debootstrappuede usar un directorio local para los archivos espejo en lugar de una dirección de red

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

Entonces, para usar sus datos locales, monte su ISO en el sistema de archivos en algún lugar; definir la variable de entorno MIRROR; Invoke lxc-create.

El archivo de autorización firmada no parecen estar en la ISO lo tratado, por lo que tuve que pasar también --no-check-gpga debootstrap, lo que significaba la edición del archivo de plantilla en /usr/share/lxc/templatesañadir el argumento:

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

Entonces, una vez ajustado:

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

trabajó.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.