Posso executar o Snappy Ubuntu Core como convidado no Docker?

10

Estou ciente de que o Snappy Ubuntu pode hospedar contêineres Docker. Minha pergunta é se ele também pode ser executado dentro de um contêiner, como convidado do Docker.

A razão pela qual estou perguntando é que não consigo encontrar nenhum contêiner convidado da Snappy VM no repositório público do Docker.

Todd Booth
fonte

Respostas:

10

Sim, você pode: O Snappy é apenas uma versão simplificada do Ubuntu, e o Ubuntu funciona dentro do Docker. O fato de o Snappy não aparecer no repositório público do Docker implica que você precisa fazer as coisas manualmente.

  1. Primeiro, obtenha a imagem mais recente:

    wget http://cdimage.ubuntu.com/ubuntu-core/preview/ubuntu-core-alpha-02_amd64-virt.img
    

    Este arquivo é uma imagem QCOW2 destinada ao QEMU / KVM, mas também podemos extrair seu conteúdo para o Docker.

  2. Para acessar os arquivos dentro de uma imagem QCOW2, você precisará qemu-nbd, instale-o e execute:

    qemu-nbd -c /dev/nbd0 ubuntu-core-alpha-02_amd64-virt.img
    

    Este comando criará um "disco virtual" chamado /dev/ndb0, com "partições virtuais" nomeadas /dev/ndb0pX. Use fdisk -l /dev/nbd0para ter uma idéia de quais partições estão dentro da imagem QCOW2.

  3. A partição que você está interessado é /dev/ndb0p3, então monte-a:

    mount /dev/ndb0p3 /somewhere
    
  4. Você está quase pronto! Basta seguir o guia do Docker em imagens de base personalizadas :

    tar -C /somewhere -c . | docker import - snappy
    

Agora você está pronto para criar suas imagens do Snappy em cima dessa imagem de base. Por exemplo, criei uma imagem snappy_test com o aplicativo xkcd-webserver instalado. Aqui está o que Dockerfileeu usei:

FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80
Andrea Corbellini
fonte
2
Não existe uma imagem pública do Docker para o Snappy?
Robin Winslow
Você pode revisitar sua resposta? Parece que a solução não funciona mais com o atual ubuntu-core imagem: cdimage.ubuntu.com/ubuntu-core/16/stable/current/...
chrisber
1
@ Karl2011 Vou tentar investigar o assunto assim que tiver algum tempo livre :) #
Andrea Corbellini /