概要
- Vagrantには、provisioningという仕組みがあり、Vagrant(VirtualBox)のVMライフサイクルとVMホスト上で動くVMやコンテナのライフサイクルを簡単に管理できる仕組みがある
- Provisioningを使わないでDockerを管理するとなると、VMのライフサイクル毎に、コンテナのビルドやスタート、クリーンナップを自分で書かなければいけない
- Provisioningを使うことで、必要最低限のコードを書くだけで済む。
コードはこちらに置いてあります。
https://github.com/matsubo/vagrant-docker-provisioning/
デモ
- こんな感じで、2回目以降の起動は30秒でコンテナが起動します。
おまけ
- ほぼ同等のインフラ構成を行う、boot2docker + Docker composeも作ってみました。
-boo2dockerがNFSマウントに対応していないので、コンテナからローカルファイルシステムの参照が10倍遅いです。。。 - Vagrant + Docker provision の方が起動が速い感じです。
GitHub - matsubo/docker-compose: Docker compose exampleDocker compose example. Contribute to matsubo/docker-compose development by creating an account on GitHub.
Comments
boot2dockerはNFSによるsharingに対応していないから、File IOが10倍ぐらい遅い。