Puis-je exécuter Snappy Ubuntu Core en tant qu'invité dans Docker?

10

Je suis conscient que Snappy Ubuntu peut héberger des conteneurs Docker. Ma question est de savoir s'il peut également être exécuté à l'intérieur d'un conteneur, en tant qu'invité Docker.

La raison pour laquelle je pose la question est que je ne trouve aucun conteneur invité Snappy VM dans le référentiel Docker public.

Todd Booth
la source

Réponses:

10

Oui, vous pouvez: Snappy est juste une version allégée d'Ubuntu, et Ubuntu fonctionne dans Docker. Le fait que Snappy n'apparaisse pas dans le référentiel public Docker implique que vous devez faire les choses manuellement.

  1. Tout d'abord, obtenez la dernière image:

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

    Ce fichier est une image QCOW2 destinée à QEMU / KVM, mais nous pouvons également extraire son contenu pour Docker.

  2. Afin d'accéder aux fichiers à l'intérieur d'une image QCOW2, vous en aurez besoin qemu-nbd, alors installez-la et exécutez:

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

    Cette commande va créer un "disque virtuel" nommé /dev/ndb0, avec des "partitions virtuelles" nommées /dev/ndb0pX. Utilisez fdisk -l /dev/nbd0pour vous faire une idée des partitions présentes dans l'image QCOW2.

  3. La partition qui vous intéresse est /dev/ndb0p3, alors montez-la:

    mount /dev/ndb0p3 /somewhere
    
  4. Tu as presque fini! Suivez simplement le guide de Docker sur les images de base personnalisées :

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

Vous êtes maintenant prêt à créer vos images Snappy au-dessus de cette image de base. Par exemple, j'ai créé une image snappy_test avec l'application xkcd-webserver installée. Voici le que Dockerfilej'ai utilisé:

FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80
Andrea Corbellini
la source
2
N'y a-t-il pas une image Docker publique pour Snappy?
Robin Winslow
Pouvez-vous revoir votre réponse, s'il vous plaît? Il semble que votre solution ne fonctionne plus avec l'image ubuntu-core actuelle: cdimage.ubuntu.com/ubuntu-core/16/stable/current/…
chrisber
1
@ Karl2011 Je vais essayer de m'en occuper dès que j'aurai du temps libre :)
Andrea Corbellini