É possível executar um LTS 10.04 ou 12.04 ou anterior em contêiner no LXC ou Docker no Trusty?

É possível executar um LTS 10.04 ou 12.04 ou anterior em contêiner no LXC ou Docker no Trusty?

É possível ter uma instalação vanilla do Ubuntu 14.04 (Trusty) e executar dentro dele versões mais antigas do Ubuntu em contêineres que originalmente vieram com kernels mais antigos?

Por exemplo, para 12.04, presumo que a resposta seja sim, pois possui linux-imagepacotes para versões subsequentes do Ubuntu, como linux-image-generic-lts-saucye linux-image-generic-lts-quantal. Para 10.04 esse não é o caso, então não tenho certeza. Mas há documentação disponível que eu possa usar para deduzir o que pode ser executado?

A razão pela qual estou perguntando é porque a interface do kernel passa por atualizações de vez em quando. No entanto, às vezes é benéfico executar versões mais recentes da distribuição e, ao mesmo tempo, manter um ambiente de construção baseado em um antecessor.

Responder1

Você pode executar programas Linux mais antigos em kernels mais recentes. O Linux mantém compatibilidade com versões anteriores (pelo menos para todas as interfaces documentadas), para o benefício de pessoas que estão executando binários antigos por um motivo ou outro (porque não querem se preocupar em recompilar, porque perderam o código-fonte, porque isso é software comercial para o qual não possuem a fonte, etc.).

Se você deseja ter um ambiente de construção com ferramentas de desenvolvimento mais antigas, ou mesmo um ambiente de teste para qualquer coisa que não se aprofunde nas interfaces do kernel, então você não precisa executar um kernel mais antigo, apenas um ambiente de usuário mais antigo. Para isso, você não precisa de nada complexo: umchrootvai fazer. Algo mais avançado como LXC, Docker,… pode ser útil se você quiser que a distribuição mais antiga (ou mais recente) tenha sua própria configuração de rede. Se você não quiser isso, você pode usar o que o Debian usa precisamente para construir software em um ambiente conhecido (por exemplo, construir software para Debian estável em uma máquina com uma instalação de teste):idiota. VerComo executo programas de 32 bits em um Debian/Ubuntu de 64 bits?para obter um guia sobre como configurar uma instalação alternativa do Debian ou um derivado em um chroot.

Se quiser rodar o kernel da distribuição mais antiga, você precisará de uma máquina virtual real para isso, como KVM ou VirtualBox. A virtualização Linux-on-Linux com LXC ou similar executa o mesmo kernel por toda parte.

Responder2

➜ codetv_static# docker run ubuntu:10.04 /bin/echo 'Howdy!' Unable to find image 'ubuntu:10.04' locally 10.04: Pulling from library/ubuntu a3ed95caeb02: Pull complete 86b54f4b6a4e: Pull complete Digest: sha256:f6695b2d24dd2e1da0a79fa72459e33505da79939c13ce50e90675c32988ab64 Status: Downloaded newer image for ubuntu:10.04 Howdy!

informação relacionada