Edited at

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

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 追記

Dockerについてブログにまとめました。

http://carefree-se.hatenablog.com/entry/2015/06/08/001107

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