Могу ли я запустить Snappy Ubuntu Core в качестве гостя в Docker?

10

Я знаю, что Snappy Ubuntu может размещать Docker-контейнеры. Мой вопрос заключается в том, может ли он также запускаться внутри контейнера в качестве гостя Docker.

Причина, по которой я спрашиваю, состоит в том, что я не могу найти гостевые контейнеры Snappy VM в общедоступном хранилище Docker.

Тодд Бут
источник

Ответы:

10

Да, вы можете: Snappy - просто урезанная версия Ubuntu, а Ubuntu работает внутри Docker. Тот факт, что Snappy не появляется в общедоступном хранилище Docker, подразумевает, что вам придется что-то делать вручную.

  1. Сначала получите последнее изображение:

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

    Этот файл является изображением QCOW2, предназначенным для QEMU / KVM, но мы можем извлечь его содержимое и для Docker.

  2. Чтобы получить доступ к файлам в образе QCOW2, вам понадобится qemu-nbdустановить его и запустить:

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

    Эта команда создаст «виртуальный диск» с именем /dev/ndb0«виртуальные разделы» /dev/ndb0pX. Используйте, fdisk -l /dev/nbd0чтобы получить представление о том, какие разделы находятся внутри образа QCOW2.

  3. Интересующий вас раздел есть /dev/ndb0p3, так что смонтируйте его:

    mount /dev/ndb0p3 /somewhere
    
  4. Вы почти закончили! Просто следуйте руководству Докера по пользовательским базовым изображениям :

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

Теперь вы готовы создать ваши изображения Snappy поверх этого базового изображения. Например, я создал образ snappy_test с установленным приложением xkcd-webserver . Вот что Dockerfileя использовал:

FROM snappy:latest
RUN snappy install xkcd-webserver
EXPOSE 80
Андреа Корбеллини
источник
2
Разве нет общедоступного образа Докера для Снейппи?
Робин Уинслоу
Можете ли вы вернуться к своему ответу? Похоже, что ваше решение больше не работает с текущим образом ядра Ubuntu: cdimage.ubuntu.com/ubuntu-core/16/stable/current/…
chrisber
1
@ Karl2011 Я постараюсь разобраться в этом, как только у меня будет немного свободного времени :)
Андреа Корбеллини