web-dev-qa-db-ja.com

VagrantボックスをDockerイメージに変換する方法

DockerイメージをVagrantボックスに変換できることを確認しました。

VagrantボックスをDockerイメージに変換する方法はありますか?

15
Roman Iuvshin

私は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
17
blacklabelops