こんにちは、おーしまです。
今回は、Youtubeでポートフォリオについて検索していた時、Dockerを活用すると良いと書いてあったのですが、その時、「Dockerって何?」と思って、調べてみたので、それについて書いていきます。
正直難しすぎて、まだしっかりと理解していませんので、間違えていたらすみません。
Dockerを説明するには、サーバー、仮想サーバー、コンテナについて説明する必要があります。
まずサーバーについて説明します。
サーバーは大きく二つの意味で使われており、
- クライアントの要望に応じたデータを送るプログラム、ソフトウェア
- webサービスを提供するパソコン本体
です。
私の作った自動車レビューサイトなどのプログラムが、前者にあたり、
herokuなど外部に作成したアプリを展開するパソコンが、後者にあたります。
今回は、後者の意味で「サーバー」という言葉を使っていきます。
続いて、仮想サーバーについてです。
仮想サーバーとは、一つのサーバーで仮想的に複数のサーバーを稼働させる仕組みのことです。
本来、一つのサーバーで一つのOSしか扱えなかったのですが、仮想的に複数のサーバーを稼働させることで、様々なOSに対応できるようになりました。これで、macOSで作ったアプリケーションをwindowsOSなどでも使えるようになりました。
しかし、
- 消費するメモリが膨大である
- 設定や管理に負荷がかかる
など、デメリットも存在しました。
そこで、コンテナの登場です。
コンテナは、アプリケーションやアプリケーションの一部を入れたりすることができます。多分。
アプリケーションをコンテナに入れて、持ち運ぶことで、元々は、macOSで作ったアプリをwindowsOSで使うには、パソコンでmacOSを立ち上げて使用していたのに、なぜかOSを立ち上げる必要がなくなるようになりました。(私の考えでは、コンテナに入ることでアプリケーションが他のOSに対応できるようになったんだと思う。)
つまり、アプリケーションをコンテナに入れて持ち運ぶことで、消費するメモリが少なくなるということです。消費するメモリが少なければ、アプリが早く起動したり、素早く動作することができるようになります。
そして、アプリをコンテナに入れて、運ぶようにするのが、
Dockerというオープンソースソフトウェアなのです。
今度は、Dockerで私のアプリをコンテナに入れて、デプロイしてみたいと思います。
今回はここまでです。
それではまた。