WindowsでDockerを使うためにVagrantで仮想マシンを立ててみる

Mac

はじめに

WindowsでDockerが使えないことが発端。

普段はMacを使っていますが、Windowsを使うこともあります。それで、Macと同じくWindowsにもDockerをセットアップしたところどうやっても動かなくて困りました。

起動はとりあえずするものの、焦り困るクジラが出て終了。

焦っているのは私も同じです。
いつ幸せなDockerライフ on Windowsを送ることができるのか、いらいらごちゃごちゃと弄り回した挙げ句、諦めておりました。

Windowsで動かないならLinuxを使えばいいじゃない

そうだね。そのとおりだね。

そんなわけで、Windows上でVagrantを使ってLinux環境を作り、その中でDockerします。

Vagrantって?

公式サイト:Vagrant

Vagrantは仮想化環境ソフト(VirtualBoxなど)で立ち上げた仮想マシンを管理するためのツールです。テキストベースで構築する環境の情報を管理できるようになります。Gitで管理したり共有したりしやすく、大変便利です。

後々のためにも、環境構築は口伝で残していく秘伝のタレ方式よりも、タレを作るレシピを残していきましょう。

準備チェックリスト

Vagrantで仮想マシンが動く状態にします。基本的に下記の項目を準備しておけば大丈夫だと思います。

Vagrantのインストール

公式サイトからダウンロードしてインストール。

公式サイト:Vagrant

VirtualBoxのインストール

これも公式サイトからダウンロードしてインストール。

公式サイト:Download VirtualBox

作業フォルダを作る

Vagrantで仮想マシンを作るスクリプトやその他諸々を扱うためのフォルダを作っておきます。まとめておいたほうが管理はしやすいです。

作る場所や作るかどうかは任意です。お好きな場所へ。

環境変数の設定

Vagrantを使うと仮想マシン(Boxと呼ばれています)がダウンロードされます。

初期状態で使うと、グイグイとドライブを圧迫していくため後でびっくりすることがあります。ぼんやりしていると100GBくらい平気で占有してしまいます。

最近は値段がこなれてきたとはいえ、SSDなどでは困った状態になるため、保存先を変更しておきます。

VagrantのBoxファイル保存先

コントロールパネルから環境変数VAGRANT_HOMEとしてパスを設定します。

dosの場合は、

VAGRANT_HOME=/{どこか余裕のある場所}/Vagrant.d

VirtualBoxのイメージファイル保存先

VirtualBoxを起動して環境設定から変更します。

一般タブに、「デフォルトの仮想マシンフォルダ」という項目があります。それを任意の場所に変更します。

寄り道

プラグインを入れる

Vagrantにはいろいろと便利なプラグインが用意されています。
改めてプラグインめぐりでもしてみましょうかね。

今回は目的まっしぐらのため、

  • vagrant-vbguest
  • vagrant-hostsupdater

だけ入れました。

入れ方は、vagrant plugin install {プラグイン名}です。

vagrant upしてから変更する場合

うっかり忘れてvagrant upしたときでも慌てず騒がず落ち着きましょう。

手順

  • まずvagrant halt
  • 元の保存先を調べます
  • すべての仮想マシンを停止します
  • 上記の手順でパスを変更します
  • 元の保存先からファイルをそのまま全て移動します
  • VirtualBoxを起動し、表示されている仮想マシンを削除します

あとはいつもどおりvagrant upで起動するはずです。

さぁVagrantしよう!

これでVagrantで仮想マシンを操作できるようになりました。作業フォルダに移動して動かしていきましょう!!

簡単なVagrantのコマンド紹介

非常にシンプルです。
これ以外にもいくつかコマンドがあります。使い方がわからないふりをしてオプションとかを付けずにvagrantと実行すると、いろいろ教えてくれます。

起動

vagrant up

停止

vagrant halt

SSH

Vagrantは起動時に証明書やらなんやらの準備をしてくれるので、コマンド一発でSSHできる状態になっています。Dockerの起動などはSSHで接続して行います。

vagrant ssh

SSHしてしまえば後は普段どおりBashってください。

スクリプトをご用意しました

何番煎じかわかりませんが、私も作ってみました。最低限のyumとフォルダ構成を含めたスッピンCentOSです。

セキュリティ対策を施していないので、あくまでもテスト環境としてご利用ください。またお決まりの文言ですが、無保証です。
口伝ではなくテキストですから、こういうときに何やってるか中身が丸わかりで良かですね。

GitHub - sunny-mountain/TestSite: Test Site(with Docker) on Windows
Test Site(with Docker) on Windows. Contribute to sunny-mountain/TestSite development by creating an account on GitHub.

Dockerフォルダにコンテナごとのフォルダを切って、dockerfileを入れる使い方を想定しています。