🍣

【図解】Part03 Docker開発するメリット3つ【Docker入門】

2023/06/12に公開


Docker開発のメリット

普段は YouTube で機械学習について発信しています。お時間ある方は覗いていただけると喜びます。
https://www.youtube.com/@nekoallergy22


Created by NekoAllergy

はじめに

みなさんこんにちは。

前回は、サーバー仮想化についての基本と、3種類の方法について紹介しました。

https://zenn.dev/nekoallergy/articles/docker-basic-02


前回の内容

3つの中でも、特に注目を集めているのが、「コンテナ型サーバー仮想化」です。コンテナを使った仮想化は、Dockerでも使用されていて、開発者なら誰でも使っている、めっちゃ便利な技術になります。


メリットを紹介

今回は、コンテナ型サーバ仮想化をもう少し深掘りして、そのメリットを3つ紹介していきます。ちょっと難しそうなテーマですが、日常の出来事を例に出しながら、初心者の方でも理解できるように解説します。

今回の内容を聞けば、どっかぁの魅力がさらに分かると思います。

メリット3つ

コンテナ型サーバー仮想化、つまりDockerを使って開発をするメリットは、次のようなものがあります。


メリットを3つ紹介

  1. 機能をまとめて管理できる
  2. 軽くて速い
  3. 安定して持ち運べる環境

難しそうな言葉が並んでいますが、順番に解説していくので大丈夫です。

1. 機能をまとめて管理


メリット1 機能をまとめて管理

みなさんが普段使っているYouTubeやNetflixのようなアプリには、たくさんの機能があります。
たとえば、アカウントにログインする機能や、ユーザー認証をする機能、画面に表示する内容を決める機能、動画を再生する機能など、本当にたくさんのことを処理しています。


プログラムの肥大化...

ここで、どんどん大きなプログラムになってくると、どこに何があるのか理解するのが難しくなってきます。
これでは、開発に時間がかかったり、予期しないバグが発生したりなど、管理がとても大変になってしまいます。


Dockerコンテナを使うことで...

そこで、Dockerのようなコンテナ技術を使うことで、この問題をクリアにすることができます。
たとえば、WebページのUIを表示する機能、ユーザー認証をする機能、メールを送る機能、のように機能を分割し、それぞれをコンテナごとに分けることができます。

これにより、見通しが良くなり、管理がしやすくなるため、開発をスムーズに進めることができます。

以上が1つめの、「機能をまとめて管理できる」というメリットです。

2. 軽くて速い


メリット2 軽くて速い

次に、Dockerは「軽くて速い」という点について説明します。


サイズは重要

アプリケーションやソフトウェアの開発においては、プログラムの容量はとても重要です。
たとえば、1つの処理をするだけなのに、100MB使っているようなコードがあると、処理や開発スピードが遅くなってめっちゃしんどいです。

その点、コンテナ型サーバ仮想化を使うことで、他の方法と比べて、サイズを小さく抑えることができます。

分かりやすいように、1つのコンピュータの上で全ての処理を実行する場合と、Dockerコンテナを使う場合を比較して考えてみましょう。


コンテナは「シェアハウス」?

たとえば、1つのコンピュータを「一人部屋」だとすると、コンテナ型仮想化は「シェアハウス」のようなものです。それぞれの部屋は独立していますが、住んでいる全員がキッチンやリビングを共有して使うことができます。そのため、全員が自分だけのキッチンやリビングを持つ必要がないです。


共有することで軽く

これと同じように、ぞれぞれのコンテナは、OSなどの重要なシステムを共有しています。個々のコンテナで全てのシステムを持つ必要がなため、全体として軽くなります。これにより、1台のPCでより多くの作業を同時に行うことが可能になります。

また、コンテナ1つ1つが軽いため、開始と終了を素早くすることもできます。


スピーディーな開始/終了

これは、スマートフォンのアプリを開くのが速いのと同じです。アプリはすぐに開き、必要ないときはすぐに閉じることができます。これがコンテナ型仮想化の優れた点で、アプリケーションの起動や終了、更新を素早く行うことができます。

以上が2つめの「軽くて速い」というメリットです。

3. 安定して持ち運べる環境


メリット3 安定して持ち運べる環境

続いては、3つ目のメリットである、「安定して持ち運べる環境」について見ていきましょう。


コンテナを別の環境へ

Dockerでは、1つの機能やアプリを、1つのコンテナに格納して管理します。このとき作成したコンテナは、自由に持ち運ぶことができて、別の環境でも同じように動かすことができます。


同じ条件なら同じ成果物になる

これは、どこでも同じコーヒーが飲めるスターバックスのようなものです。スターバックスでは、店舗が違っても、同じ機械と、同じ材料と、同じマニュアルを使ってコーヒーを作るため、どこでも美味しいコーヒーを飲むことができます。


コンテナを使って同じように動作させる

これと同じように、Dockerコンテナを使うことで、簡単にアプリケーションを移動することができます。どのOSでも、コンテナは同じように動作します。そのため、開発環境やテスト環境、本番環境で、同じアプリケーションを同じように動作させることができます。これにより、「私のマシンでは動くのに本番環境だと動かない…」という混乱を防ぐことができます。

まとめ

さて、今回の内容をまとめます。
今回は、「コンテナ型サーバ仮想化のメリット」について紹介しました。


まとめ

コンテナ型サーバ仮想化は、3つの大きなメリットがあります。

  1. 機能をまとめて管理できる
  2. 軽くて速い
  3. 安定して持ち運べる環境

Dockerを使うことで、開発の自由度を高め、更新のスピードを上げ、一つの問題が全体に影響を与えにくい環境を作ることができます。

これらのメリットから、新しいサービスを作るときや、作業の効率を上げるときに、とても役立つ道具となっています。

今回の内容は以上です。皆さんの理解が一歩でも進めば嬉しいです。

機械学習をもっと詳しく

ねこアレルギーのAI

ねこアレルギーの AI
普段は YouTube で機械学習について発信しています。お時間ある方は覗いていただけると喜びます。
https://www.youtube.com/@nekoallergy22





Created by NekoAllergy

Discussion