Как конвертировать окно бродяг в изображение Докера

Я видел, что можно преобразовать изображение Докера в коробку бродяг.

Есть ли способ конвертировать коробку Vagrant в изображение Docker?

Ответ 1

Я воспроизвел это с помощью ящиков EC2 и ящиков Virtualbox в моем проекте Github blacklabelops/centos. Я подготовил Vagrantfile с необходимой установкой, и вы можете попробовать его самостоятельно с помощью своих бродячих коробок.

Коробки EC2:

  • Создайте и предоставите изображение AMI с https://github.com/katzj/ami-creator - Скриптами в моем репозитории.

  • Затем используйте Guestfish, чтобы извлечь изображение в архив. - Скрипты в моем репозитории.

  • Импортируйте архив в докер. Пример в моем репозитории.

И теперь с Vagrant Virtualbox, команды могут быть воспроизведены с моим предоставленным Vagrantfile. Просто клонируйте репозиторий, запустите его и введите:

$ qemu-img convert -f vmdk -O raw MyTry-disk1.vmdk mytry.img

Коробка Vagrant VMDK может быть найдена в папке Virtualbox, обычно ~/VirtualBox\VMs/.

После создания raw вы можете применить Guestfish.

$ guestfish -a mytry.img --ro
$ ><fs> run

Примечание: tty

$ ><fs> list-filesystems 
/dev/sda1: ext4
/dev/VolGroup/lv_root: ext4
/dev/VolGroup/lv_swap: swap
$ ><fs> mount /dev/VolGroup/lv_root /
$ ><fs> tar-out / - | xz --best >>  mytry.xz
$ ><fs> exit

Примечание: выход из tty

Импорт в докер:

$ cat mytry.xz | docker import - mytryimage

Просмотр контейнера

$ docker run -it mytryimage bash

Ответ 2

Я воспроизвел это с блоками EC2 и блоками Virtualbox в моем проекте Github blacklabelops/centos. Я подготовил Vagrant файл с необходимой установкой, и вы можете попробовать его самостоятельно с вашими Vagrant-боксами.

Коробки EC2:

Создайте и предоставьте образ AMI с помощью https://github.com/katzj/ami-creator - сценариев в моем хранилище.

Затем используйте Guestfish, чтобы извлечь изображение в тарбол. - Скрипты в моем хранилище.

Импортируйте тарбол внутри Docker. - Пример в моем хранилище.