Desde que postei essa pergunta, fiz esse processo meia dúzia de vezes sem muita dificuldade. Eu pensei em adicionar algumas dicas do que aprendi na esperança de que alguém as encontre úteis:
Tudo o que você precisa fazer é copiar o sistema de arquivos raiz no diretório rootfs do contêiner (/ var / lib / lxc / YOUR_CONTAINER / rootfs / para armazenamento de backup baseado em disco). Excluir / proc, / dev, / sys e / tmp.
Depois:
- Tornar o fstab vazio no contêiner
- Garanta um conjunto mínimo de arquivos de dispositivos em / dev. Eu copio os arquivos do dispositivo de um contêiner de amostra que eu criei usando um modelo.
- Se você vai usar o lxcbr0 para redes, defina a interface de rede para DHCP em / etc / network / interfaces
- Se você estiver indo para uma interface física, defina a interface para estática ou manual. Se manual, coloque o endereço IP na configuração do contêiner. Não defina para DHCP.
- Certifique-se de definir um hwaddr na configuração do contêiner. Se você não fizer isso, o LXC irá gerar aleatoriamente um quando o contêiner for carregado, causando muitas entradas ARP antigas em sua rede.
- leia / usr / share / lxc / templates / lxc-ubuntu. Preste atenção especial à função configure_ubuntu (). Você provavelmente deseja executar a maioria desses comandos no seu contêiner.
Depois que o contêiner estiver ativo, percorra todos os processos no pstree, removendo aqueles que não são necessários em contêineres (udevd, ntpdate, mdadm, etc). Sinta-se à vontade para remover todos os pacotes do kernel.
Aqui está uma configuração de contêiner de amostra para fins de conclusão. Essa configuração é para um host confiável. O contêiner nessa instância é preciso.
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.start.auto=1
lxc.rootfs = /var/lib/lxc/myhost/rootfs
lxc.mount = /var/lib/lxc/myhost/fstab
lxc.utsname = myhost
lxc.arch = amd64
# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.ipv4 = 172.27.3.13/24
lxc.network.ipv4 = 172.27.3.15/24
lxc.network.ipv4.gateway = 172.27.3.1
lxc.network.hwaddr = 52:12:a1:a5:d3:23
Se o sistema operacional host for preciso, você também desejará isso em sua configuração. O arquivo comum não estará disponível.
lxc.devttydir = lxc
lxc.tty = 4
lxc.pts = 1024
lxc.cap.drop = sys_module mac_admin
lxc.pivotdir = lxc_putold