DockerイメージをVagrantボックスに変換できることを確認しました。
VagrantボックスをDockerイメージに変換する方法はありますか?
私はGithubプロジェクト blacklabelops/centos でEC2ボックスとVirtualboxボックスを使用してこれを再生しました。必要なインストールを含むVagrantfileを用意しました。Vagrantボックスで自分で試すことができます。
EC2ボックス:
https://github.com/katzj/AMI-creator を使用してAMIイメージを作成およびプロビジョニングします-私のリポジトリにSkripts。
その後、Guestfishを使用して、イメージをtarballに抽出します。 -私のリポジトリのSkripts。
Docker内にtarballをインポートします。 -私のリポジトリの例。
そして今、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を終了する
Dockerへのインポート:
$ cat mytry.xz | docker import - mytryimage
コンテナの中を見る
$ docker run -it mytryimage bash