Windows + Vagrant + VirtualBox + Docker

f:id:syonx:20140218010456p:plain

概要

話題の Vagrant や Docker とはなんぞ? Windowsで環境構築して試してみたメモ。

この記事の情報はもう古いです。(2014-02)
次の記事もあわせて参照ください。

試してわかったことを先に説明

Vagrant Docker 違い」

こんな検索ワードで調べたりしていましたが、お互い競合するものでもなく、役割の違うソフトウェアだということがわかりました。まとめると、

Dockerの公式サポートは今のところ Ubuntu のみ。「Dockerのインストーラ」があるわけではなくて、 『Dockerを導入済みなUbuntuが配布されていて、それをVirtualBox上で動かすためにイメージのダウンロードと構成の定義をVagrantが自動でやってくれて、それを起動することでDockerが利用できる』という理解に至った。


環境構築手順

参考

Chocolateyのインストール

こんなのがあるんだ。べんり。 VirtualBoxVagrant をインストールするために導入します。以下、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

wget でエラーが出たので curl を使いました。

C:\docker> curl -L -o Vagrantfile https://raw.github.com/dotcloud/docker/master/Vagrantfile

普段 wgetcurl を使っていないのであれば、直接上記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のチュートリアル

f:id:syonx:20140218012853p:plain

このページにある、Interactive commandline tutorial の Start! ボタンからエミュレータを使ったチュートリアルを受けられます。英語ですが、左下の click here to see the expected command をクリックしてみれば適切なコマンドがわかります。

UbuntuSSH接続

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 などやってエラーとなり「?」となっていましたが、ちゃんと実際に自分の手で試すことでいろいろと理解できました。お役に立てば幸いです。