Bisakah saya menjalankan Snappy Ubuntu Core sebagai tamu di dalam Docker?

10

Saya sadar bahwa Snappy Ubuntu dapat meng-host kontainer Docker. Pertanyaan saya adalah apakah bisa juga dijalankan di dalam sebuah wadah, sebagai tamu Docker.

Alasan saya bertanya adalah bahwa saya tidak dapat menemukan kontainer tamu Snappy VM di repositori Docker publik.

Todd Booth
sumber

Jawaban:

10

Ya, Anda bisa: Snappy hanyalah versi Ubuntu yang sudah dipreteli, dan Ubuntu berfungsi di dalam Docker. Fakta bahwa Snappy tidak muncul di dalam repositori Docker publik menyiratkan bahwa Anda harus melakukan sesuatu secara manual.

  1. Pertama, dapatkan gambar terbaru:

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

    File ini adalah gambar QCOW2 yang dimaksudkan untuk QEMU / KVM, tetapi kami juga dapat mengekstrak isinya untuk Docker.

  2. Untuk mengakses file di dalam gambar QCOW2, Anda perlu qemu-nbd, jadi instal dan jalankan:

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

    Perintah ini akan membuat "disk virtual" bernama /dev/ndb0, dengan "partisi virtual" bernama /dev/ndb0pX. Gunakan fdisk -l /dev/nbd0untuk mendapatkan gambaran tentang partisi apa yang ada di dalam gambar QCOW2.

  3. Partisi yang Anda minati adalah /dev/ndb0p3, jadi pasang:

    mount /dev/ndb0p3 /somewhere
    
  4. Kamu hampir selesai! Cukup ikuti panduan Docker pada gambar basis kustom :

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

Sekarang Anda siap untuk membuat gambar Snappy Anda di atas gambar dasar itu. Misalnya, saya membuat gambar snappy_test dengan aplikasi xkcd-webserver diinstal. Inilah yang Dockerfilesaya gunakan:

FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80
Andrea Corbellini
sumber
2
Apakah tidak ada gambar Docker publik untuk Snappy?
Robin Winslow
Bisakah Anda melihat kembali jawaban Anda? Sepertinya solusi Anda tidak berfungsi lagi dengan gambar ubuntu-core saat ini: cdimage.ubuntu.com/ubuntu-core/16/stable/current/…
chrisber
1
@ Karl2011 Saya akan mencoba memeriksanya segera setelah saya punya waktu luang :)
Andrea Corbellini