2015年6月10日水曜日

vagrantによるdocker環境の構築

vagrantとはVMのラッパーツールである。設定ファイル(Vargrantfile)を使用してVMを起動することができ、環境構築の再現性を高めてくれる。また、Dockerが64bitOSにしか対応していないのに対して、32bitOSをサポートしているため、環境構築のホストOSへの依存度も低下する。

ここでは、vagrantのインストール及びvagrantを使ってdockerコンテナを扱う際の基礎的なコマンドについて記載する。

vagrantはパッケージでインストールする。

vagrantはデフォルトの仮想化ソフトに VirtualBox または VMWare を使うため、どちらかインストールしておく。ここでは、VirtualBoxを利用する。

また、vagrantのプラグイン dotenv をインストールする。
$ vagrant plugin install dotenv
Installing the 'dotenv' plugin. This can take a few minutes...
Installed the plugin 'dotenv (2.0.1)'!

vagrantでVMを起動する
vargrant up

vagrantで起動したssh接続する
vargrant ssh

vagrantのVMのステータスを確認する
vagrant status

vagrantでVMを停止する
vagrant halt

ホストとのファイル共有
synced_folderを使用してローカルマシンとVMの間で特定のディレクトリを共有する。
ソースコードやDockerfileを変更して、そのままVM上でDockerイメージをビルドするために用いる。

      config.vm.synced_folder(
        "../",
        "/home/core/#{File.basename(File.dirname(Dir.pwd))}",
        id: "vmid",
        :nfs => true,
        :mount_options => ['nolock,vers=3,udp'],
      )

Dockerfileを書く際の基本方針
イメージを小さくすること。コンテナの起動、イメージのビルド、push、pullにかかる時間を短くすることができる。

ビルドのレイヤー数
Dockerfileには、関連するコマンドを連結(&&とバックスラッシュを利用すると、コマンドを連結できる)してビルドのステップ数を少なくする。

Vagrantfileとansibleでdockerをインストールする方法はこちら


0 件のコメント:

コメントを投稿