2015-05-04 11 views
5

Sto provando a creare un contenitore LXC da un tar.gz locale di un rootfs di un altro contenitore ma non ho trovato nessuna opzione in lxc-create da fare così. Posso creare un nuovo contenitore, rimuovere il suo rootfs e sostituirlo con il mio rootf untared ma questo è troppo maldestro. C'è un modo migliore per farlo?Creare un contenitore LXC da un modello locale (tar.gz)

risposta

1

Dopo un po 'di ricerche ho trovato this script che prende un tar.gz e crea un contenitore LXC.

$ lxc-create -n test-container -t ./salt_tarball -- --network_link lxcbr0 --imgtar /root/template.tar.gz 

nota qui che salt_tarball è il nome dello script.

0

Utilizzando that script @syed sopra citato ha bisogno di più lavoro (Ubuntu 16.04, LXC 2.0, ancora non LXD):

Prima di tutto bisogna copiare lo script nella directory di modello e renderlo eseguibile

$ cp salt_tarball /usr/share/lxc/templates/lxc-salt_tarball 
$ chmod +x /usr/share/lxc/templates/lxc-salt_tarball 

Assicurarsi di aggiungere lxc- davanti al nome durante la copia.

Per creare il nuovo contenitore utilizzando lo script fare

$ lxc-create -n test-container -t salt_tarball -- --network_link lxcbr0 --imgtar /root/template.tar.gz 

cioè chiamata salt_tarball senza ./ e senza la lxc- aggiunto sopra. L'opzione --network_link è facoltativa.

Quando si crea il proprio tar.gz da un contenitore esistente, assicurarsi di utilizzare --numeric-owner.

+0

Non è necessario copiare lo script in/usr/share/lxc. Basta fare riferimento allo script con il suo percorso completo, o '$ (pwd)/salt_tarball' – Pwnna