仮想開発環境構築ツールまとめ

  • 275
    Like
  • 0
    Comment
More than 1 year has passed since last update.

VagrantとDockerの理解がどうも曖昧だったので整理するために、それぞれどうゆうものなのかをまとめました

Vagrant

Vagrantとは、違う環境に移行可能な開発環境を簡単に構築・管理し、配布することができる仮想開発環境構築ソフトウェア。仮想マシンの構築手順を'Vagrantfile'という設定ファイルに記述する。
VagrantのパッケージにはRubyの実行環境が含まれているので、Rubyをインストールしなくても使用可能。
VirtualBoxやVMWareといった仮想環境の上に仮想マシンを構築して利用する。

*1.0.x系はrubygemsでも公開していたが、現行ではパッケージからインストール形式を取っている

公式サイト

https://www.vagrantup.com/

主要なコマンド

Vagrantfileに記述した設定に従い仮想マシンを起動

terminal
$ vagrant up
  • 仮想マシンにSSHログイン
terminal
$ vagrant ssh
  • 仮想マシンの状態を確認
terminal
$ vagrant status
  • 仮想マシンを停止
terminal
$ vagrant halt
  • 仮想マシンを削除
terminal
$ vagrant destroy
  • ssh_configを保存(出力)
terminal
$ vagrant ssh-config >> ~/.ssh/config

Docker

Docker Inc. がオープンソースで開発しているコンテナ型仮想化技術、ソフトウェア。
Dockerfileに設定を記述していく。

公式サイト

https://www.docker.com/

コンテナとは(LXC)

一つのホスト上で複数の隔離されたLinuxシステム(コンテナ)を走らせる、OSレベルの仮想化ソフトウェア。
VMに比べ、消費リソースが少い、起動が早い、オーバヘッドが少いというメリットがある。

Docker Hub

Dockerイメージの保存、共有が出来るサービス。
docker pullコマンドでダウンロードが出来る
https://hub.docker.com/

主要なコマンド

  • Dockerイメージのダウンロード
terminal
$ docker pull <イメージ名>:<タグ名>
  • イメージの一覧
terminal
$ docker images
  • コンテナの実行
terminal
$ docker run <オプション> <--name コンテナ名> <イメージ名>:<タグ名> 
  • コンテナの一覧
terminal
$ docker ps -a
  • コンテナの停止
terminal
$ docker stop <オプション> <コンテナ名>
  • コンテナの起動
terminal
$ docker start <コンテナ名>
  • コンテナの強制終了
terminal
$ docker kill <コンテナ名>
  • コンテナの削除
terminal
$ docker rm <コンテナ名>
  • イメージの削除
terminal
$ docker rmi <イメージ名>

プロビジョニングツール

プロビジョニングとは

provisioning : [供給/準備/設備/引き当て(すること)]
ネットワーク設備やシステムリソースなどを事前に用意しておき、ユーザーの要求に応じてそれを割り当てて迅速にサービスの提供を行うこと。

Puppet

ruby製、独自の宣言型言語によりシステムのあるべき状態を管理する。
参考 : http://gihyo.jp/admin/serial/01/puppet/0001?page=2

Chef

Puppet同様、サーバ管理ツールで設定ファイルをrubyで記述できる。
cookbook,Recipe等独自の概念を持っている

Chefについては気力がある時に、またまとめようとおもいます。。。

2015-06-10 追記

Dokerについてブログにまとめました。
http://carefree-se.hatenablog.com/entry/2015/06/08/001107

こちらの内容 + Dockerfileについても触れています