¿Puedo ejecutar Snappy Ubuntu Core como invitado dentro de Docker?

10

Soy consciente de que Snappy Ubuntu puede alojar contenedores Docker. Mi pregunta es si también se puede ejecutar dentro de un contenedor, como invitado Docker.

La razón por la que pregunto es que no puedo encontrar ningún contenedor invitado de Snappy VM en el repositorio público de Docker.

Todd Booth
fuente

Respuestas:

10

Sí, puedes: Snappy es solo una versión simplificada de Ubuntu, y Ubuntu funciona dentro de Docker. El hecho de que Snappy no aparezca dentro del repositorio público de Docker implica que debe hacer las cosas manualmente.

  1. Primero, obtenga la última imagen:

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

    Este archivo es una imagen QCOW2 destinada a QEMU / KVM, pero también podemos extraer su contenido para Docker.

  2. Para acceder a los archivos dentro de una imagen QCOW2, necesitará qemu-nbd, así que instálelo y ejecute:

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

    Este comando creará un "disco virtual" llamado /dev/ndb0, con "particiones virtuales" llamado /dev/ndb0pX. Úselo fdisk -l /dev/nbd0para tener una idea de qué particiones están dentro de la imagen QCOW2.

  3. La partición que le interesa es /dev/ndb0p3, así que móntela:

    mount /dev/ndb0p3 /somewhere
    
  4. ¡Estas casi listo! Simplemente siga la guía de Docker sobre imágenes de base personalizadas :

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

Ahora está listo para crear sus imágenes Snappy encima de esa imagen base. Por ejemplo, creé una imagen snappy_test con la aplicación xkcd-webserver instalada. Aquí está el Dockerfileque usé:

FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80
Andrea Corbellini
fuente
2
¿No hay una imagen pública de Docker para Snappy?
Robin Winslow
¿Puedes por favor revisar tu respuesta? Parece que su solución ya no funciona con la imagen actual de ubuntu-core: cdimage.ubuntu.com/ubuntu-core/16/stable/current/…
chrisber
1
@ Karl2011 Intentaré investigarlo tan pronto como tenga algo de tiempo libre :)
Andrea Corbellini