Windows + Vagrant + VirtualBox + Docker
概要
話題の Vagrant や Docker とはなんぞ? Windowsで環境構築して試してみたメモ。
次の記事もあわせて参照ください。
試してわかったことを先に説明
「Vagrant Docker 違い」
こんな検索ワードで調べたりしていましたが、お互い競合するものでもなく、役割の違うソフトウェアだということがわかりました。まとめると、
- Vagrant
- VirtualBoxを便利に使うためのもの
- Docker
- Ubuntu上で動作する LXC + AUFS 的な何か
→ 仮想環境構築に docker を使う - apatheia.info
- Ubuntu上で動作する LXC + AUFS 的な何か
Dockerの公式サポートは今のところ Ubuntu のみ。「Dockerのインストーラ」があるわけではなくて、 『Dockerを導入済みなUbuntuが配布されていて、それをVirtualBox上で動かすためにイメージのダウンロードと構成の定義をVagrantが自動でやってくれて、それを起動することでDockerが利用できる』という理解に至った。
環境構築手順
参考
Chocolateyのインストール
こんなのがあるんだ。べんり。 VirtualBox と Vagrant をインストールするために導入します。以下、Chocolateyを使ったインストール手順を示しますが、ウェブサイトから手作業でインストールしても同じです。
VirtualBoxのインストール
C:\> cinst virtualbox
Vagrantのインストール
C:\> cinst vagrant
※インストール終了後、コマンドプロンプトで vagrant
コマンドが動作しない場合はWindowsを再起動します。
Docker Vagrantfileのダウンロード
C:\> mkdir docker C:\> cd docker C:\docker> wget https://raw.github.com/dotcloud/docker/master/Vagrantfile
C:\docker> curl -L -o Vagrantfile https://raw.github.com/dotcloud/docker/master/Vagrantfile
普段 wget や curl を使っていないのであれば、直接上記URLにアクセスしてテキストファイル Vagrantfile
(拡張子なし) に保存すればOK。
2014.02.27 追記
VagrantfileがRemoveされたようです。
2014.06.29 追記
上記の対処として公式推奨の Boot2Docker を使ってインストールした方の情報です。Thanks!
Vagrantを使ってVirtualBoxを起動
C:\docker> vagrant up
同階層にあるVagrantfileをもとに処理が行われます。初回はイメージのダウンロードが行われるため、10分弱かかりました。
なお、実体はここにあります。313MB。
C:\Users\username\.vagrant.d\boxes\ubuntu\virtualbox
待っている間にチュートリアルを受けます。
Dockerのチュートリアル
このページにある、Interactive commandline tutorial の Start!
ボタンからエミュレータを使ったチュートリアルを受けられます。英語ですが、左下の click here to see the expected command
をクリックしてみれば適切なコマンドがわかります。
UbuntuにSSH接続
C:\docker> vagrant ssh
これだけで接続できます。vagrant up
した時に生成されたキーを使っているようです。
C:\Users\username\.vagrant.d\insecure_private_key
環境によっては、sshコマンドが見つからないと怒られるかもしれません。
僕は TortoiseGit をインストールしたときにSSHクライアントを入れていたので、そのまま接続できました。
※SSH経由での操作内容が画面上でどうなっているかを確認するためにVirtualBoxから手動で起動を試みましたが、パスワードがわからず断念しました。。
実際にDockerを使ってみる
上記チュートリアルと全く同じことを、自分の作った環境で実行してみます。
SSH接続したUbuntu上でコマンドを実行していきます。
$ docker search tutorial
の結果が少し違うくらいで、すんなり進めることができました。
おわりに
はじめはコマンドプロンプト上で C:\> docker
などやってエラーとなり「?」となっていましたが、ちゃんと実際に自分の手で試すことでいろいろと理解できました。お役に立てば幸いです。