質問: ### DockerとVirtualBoxの違いについて 以前研究室でわけも分からずvirtualboxを利用していたのですが、今それとは別にDockerなるものの名前をよく聞くようになったので勉強したいと考え質問させていただきました。 https://knowledge.sakura.ad.jp/13265/ 上記のサイトによれば、 dockerとvirtualboxの違いは以下のように書いてありました。 *Dockerは、Linuxのコンテナ技術を使ったもので、よく仮想マシンと比較されます。VirtualBoxなどの仮想マシンでは、ホストマシン上でハイパーバイザを利用しゲストOSを動かし、その上でミドルウェアなどを動かします。それに対し、コンテナはホストマシンのカーネルを利用し、プロセスやユーザなどを隔離することで、あたかも別のマシンが動いているかのように動かすことができます。そのため、軽量で高速に起動、停止などが可能です。* そもそもホストマシンの意味が分からないのですが、(ホストマシンを調べてもホストコンピューターがヒットしてしまうのですがこれは違うという認識でハードウェアという認識をとりあえずしています。間違えていれば教えていただけると恐縮です。)Dockerはvirtualboxと違ってあたかも違うマシンが動いているように動かすことができることができると書いてあります。 しかし以上のことをしたいだけではローカルで解析をするのと同じであると思います。わざわざDockerを利用したいと理由がいまいち分かりません。 このサイトではいきなり出てきたイメージというものを共有することができるとの話ですがイメージとはそもそも何なのかそれをどのように今の情報関係の仕事では使われているのか、また使われ方にバリエーションが伴っているのかなど基本中の基本ではありますが詳しい方がいれば教えていただけると恐縮です。 よろしくお願いいたします。
回答: > > そもそもホストマシンの意味が分からないのですが、(ホストマシンを調べてもホストコンピューターがヒットしてしまうのですがこれは違うという認識でハードウェアという認識をとりあえずしています。間違えていれば教えていただけると恐縮です。) > > > 「ホストマシン」はハードウェアのことを指している用語ではありません。 「ホストマシン」という呼び名はあまり一般的ではないようなので、「ホストOS」で調べると良いと思います。 Weblio 辞書からの引用: 「ホストOSとは、仮想マシン(仮想コンピュータ)環境で仮想的なOSを動作させている(土台となっている)OSのことである。」 > > しかし以上のことをしたいだけではローカルで解析をするのと同じであると思います。わざわざDockerを利用したいと理由がいまいち分かりません。 > > > 仮想環境(Docker や virtualbox)のメリットは、**「一つのコンピュータ(ハードウェア)で、複数の仮想コンピュータを使えること」**です。 仮想コンピュータはハードウェアを購入・廃棄する必要がなく、とても経済的です。 また、作成・破棄が瞬時に行えるのも大きなメリットです。 なので、そもそも一つのコンピュータで事足りているのであれば、仮想環境は必要ないかもしれません。 > > このサイトではいきなり出てきたイメージというものを共有することができるとの話ですがイメージとはそもそも何なのかそれをどのように今の情報関係の仕事では使われているのか、また使われ方にバリエーションが伴っているのかなど基本中の基本ではありますが詳しい方がいれば教えていただけると恐縮です。 > > > 「イメージ」は**「仮想コンピュータをファイルにしたもの」**と思ってください。 ファイルなので、コピーしてバックアップを取ったり、他人と共有したりといった使い方ができます。 また Docker には、「Docker Hub」 という Docker イメージを共有するサイトがあり、よくある OS や設定の仮想コンピュータであれば、ここで見つけることができます。 コンピュータのセットアップに何時間もかかってしまうというのはよくあることですが、Docker Hub からダウンドードした Docker イメージを利用することで、セットアップにかかる時間を大幅に短縮することができます。 「イメージ」が何なのか言葉で理解するのはなかなか難しいので、実際に使ってみることをおすすめします。