目次

主に、Dockerをイメージしてもらえればわかりやすいですが、Linuxに限らず仮想化全般をまとめます。

はじめに

ここではVirtualBoxをはじめ、Dockerやrktなどの仮想化技術、コンテナ技術について紹介していきます。

ちなみに、VirtualBoxとDockerは全く関係ないかというと、そうではありません。仮想化という点で2つのアプリは同じ分野に属します。

また、macやWindowsの場合、昔はVirtualBoxイメージを用いてDocker(boot2docker)を動かしていました(現在はDocker for MacによってVirtualBoxは不要になっています)。VirtualBoxのようなものを用いてもDockerで実現したいことをやろうとすることは可能です。反対にDockerを用いてもVirtualBoxでやりたかったことを実現できるとは限りませんが。

しかし、VirtualBoxとDocker、これらが全く同じものかというと、そうではありません。

VirtualBoxは仮想環境でOSを動かすアプリ、Dockerはコンテナを動かすアプリです。

ここでコンテナのイメージですが、一つのコンテナで一つのプロセス(アプリ)を実行するイメージです。

つまり、VirtualBoxでは一つの仮想環境を作り、その仮想OS上でいくつものアプリを実行するイメージですが、Dockerは一つの仮想環境(コンテナ)を作り、そこで一つのアプリを実行するイメージです。

これによってもし仮想環境が不要になった場合、OSごと削除しなければならないVirtualBoxと違い、コンテナの使い捨ては比較的容易になります。なぜなら、Dockerで動かしているコンテナはコンテナごとに一つの役割しか割り当てられていないことが多いからです。

方針について

当記事の方針の一つは、著者が後々利用しやすいように作っていく方針です。

一部、表現等に正確ではないものも含まれると思いますが、この記事では正確さよりも分かりやすさを重視します。もし正確な情報が欲しければ、公式ドキュメントなど参照してください。

著者のレベル

著者はコンピュータは全くの初心者です。一緒に勉強していきましょう。

VirtualBox

Vagrant

Vagrantと言うものがあります。これはVirtualBoxをインストールしたときに入ってくるVBoxコマンドを使って、クラウドにあるイメージから簡単に環境を構築するためのツールです。設定ファイルを書けば様々な汎用的な設定も可能になります。

$ vagrant init hashicorp/precise64
$ vagrant up

Docker

Docker Hubというものがあります。Docker Hubとはコンテナイメージを置いてあるサイトのことで、Dockerではここにアップロードされているイメージを使って簡単にコンテナを動かすことができます。

# https://hub.docker.com/r/syui/docker-alpine-privoxy-block/
$ sudo docker run -d -p 8119:8119 syui/docker-alpine-privoxy-block

$ curl -sL -x localhost:8119 ipinfo.io

rkt

rkt

systemd-nspawn

systemd-nspawn