【Docker使えるようになりたい】【#1】 Dockerをなぜ使うのか

Dockerとはなにか

「コンテナ仮想化技術」を使って、アプリケーションを開発・配置・実行するための隔離された環境を提供するツールです。

そもそもコンテナって何という部分をまとめたのが以下の記事になります。

Dockerをなぜ使うのか

ここからが本題になります。

まずDockerのメインの目的として、今までのようにWindowsMacに直接ソフトをインストールして使わずに開発・配置・実行をできるようになります。

「直接インストールして使えるからそれでいいよ」、と思うかもしれませんが、直接インストールでいい時ももちろんありますが、ソフトウェア開発でよく出会うケースとして、以下のようなものがあります。

  • 同じソフトでも別のバージョンを使いたい
  • 別の人にも自分と同じ環境で開発をしてほしい
  • 同じパソコン上で別々の環境を再現して動作を確認、連携させたい(パソコンを複数台用意するのが面倒くさい)
  • ほかにインストールしているソフトが邪魔をして動作がおかしくなる

最後のパターンは開発をしていなくても、出会うことがあると思います。
(ウィルス検知ソフトが実行したいソフトをウイルスとしてブロックしてしまい、手間取らされたなど)

このような悩みを解決することを目的としているのが、Dockerになります。

以下の文章は公式のドキュメントのDockerについての説明の抜粋です。

Docker provides the ability to package and run an application in a loosely isolated environment called a container. The isolation and security lets you run many containers simultaneously on a given host. Containers are lightweight and contain everything needed to run the application, so you don’t need to rely on what’s installed on the host. You can share containers while you work, and be sure that everyone you share with gets the same container that works in the same way.

ほかの仮想化技術との違い

ここからは、発展的な話になるので、興味がある方だけ読んでください。

Dockerの仮想化は今までVM(仮想lマシン)のようにハードウェアの仮想化は行わずに、ホストOSのカーネルを使用してコンテナを動作させ処理を実行できます。

前提の大切なこととして、Dockerは「Linuxカーネル上でしか動きません」

感の良い方はお気づきかもしれませんが、ホストOSのカーネルはLinuxならUnixベースだから基本的な動きはできるとしても、WindowsはMS Dosなんだからカーネルを使うことはできないだろ、お気づきだと思います。

Windowsの場合は、さらにひと手間加えて、WSLという「Windows コンピューター上で Linux 環境を実行でき、別の仮想マシンやデュアル ブートは必要ない仕組み」を使い、いい感じに使えるシステムを間に入れることでホストOSのカーネルを使っています。

これ以上Winodws上でDockerが動作する詳しい話をしようとすると、長くなりすぎてしまうので、以下の記事が分かりやすかったのでより詳しく知りたい方は、そちらも参考にしてみてください。

まとめ

Dockerはハードウェアを仮想的に再現して実行していた従来のVMの仕組みよりも、よりシンプルで処理の軽い動作を実現できるのが特徴です。

そのおかげで、一時的な実験での使用や、大規模なシステムのマイクロサービス化などが実現できているということになりました。

  • 軽い
  • 早い
  • お手軽

この3拍子をそろえることができているので、実際にたくさんの現場で使われているということです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA