「Dockerってつまり何なの!?」「VirtualBoxとの違いは?」Dockerはパソコンのアパートだ!

記事を書いた人
はじめまして🤗
事務職から未経験でエンジニアに転職した、のえぞうと申します。北海道で育ち、現在も北海道に住んでいます。
未経験で辛かったこと、理解するのが難しかったこと、たくさんありました。
この記事を読んでくださる皆様のお幸せとご活躍を願い、ほんの少しでもお役に立てれば、なまら(北海道弁で「とても」の意)嬉しいです。
まえがき
こちらは 🔰初学者向けの易しい記事🔰です
この記事にたどり着いた方々、少なからずDockerについてのモヤモヤ💭を抱えているのではないでしょうか?🤨
また初学者に説明するためのヒントをお探しの方もいるかもしれませんね。
この記事では
【🔰初学者がDockerの概念についてイメージを掴む✊】ことを主目的としています。
あくまで私自身の経験や考えに基づく内容ですので、『こういう見方もあるんだ』くらいに受け取っていただければ嬉しいです。
- 具体的なコマンドは記載しません🚫
- 検索キーワードをリストアップしていますので、必要に応じてご活用ください。
- 読み方👀
- 初学者の方には上から順に読んでいただければと思いますが、ある程度経験のある方はかいつまんでお読みください。
👇以下本編です👇
Dockerって何だろう
データやプログラムを隔離する仕組みのことです。
コンテナとDocker Engine
パソコンの中身をアパートのような細かいお部屋に分ける(隔離する)と考えてみてください。各部屋は独立しており、データやプログラムなどが住んでいます。
このお部屋のことをDockerの世界では「コンテナ」と呼びます。
キーワード: Docker Container
物件情報(イメージ)からお部屋(コンテナ)を作る
Dockerイメージ🗒とはコンテナの設計書のようなものです。イメージをビルド🛠すると、間取り・家財道具から住人(ソフトウェア)までセットで様々なお部屋をつくることができます。
大工さんが住人を作る?
「家族向け5LDK」や「単身者向け1K」のように、大きな意味でのお部屋の設計書と思ってください。
お部屋(コンテナ)は複製でき、Docker上にいくつも展開できます。アパートに例えると、建物内に空きスペースがある限りいくつもお部屋を増やし、何人もの住人が入居できるイメージです。
この例をパソコンに当てはめると:
- 物件情報(お部屋の図面と対象)がDockerイメージ
- 建物のサイズがパソコンのストレージ容量
- お部屋はDockerコンテナ
- 住人はデータやソフトウェア
キーワード: Docker Image, Docker Build
なぜお部屋(コンテナ)を分けたいのか
システムはいくつものプログラムで構成されることが多いです。Dockerなどを使わなければ、パソコンは壁のない大広間のようになり、プライバシーが全くない共同生活をするイメージです。
これではソフトウェア同士でバージョン衝突や依存問題などのトラブル😡が起きやすくなります。コンテナで隔離することで、こういった同居問題を解消し、それぞれが安心して動作できる環境を提供します🏡🏘🏠
Dockerが動く仕組み
仕組み
コンテナの中には「OSのようなもの」があらかじめ用意されています。実際は完全なOSではありませんが、プログラムの命令を受け取り物理ホストOSのカーネルに伝える仕組みとなっています。
アーキテクチャは以下の通りです:
- コンテナ(「OSのようなもの」が住んでいるお部屋)
- Docker Engine(アパート全体)
- ホストOS(土地)
- 物理ホストマシン(地球)
OSを擬人化すると?
OSは「指示を出すもの」と考えてください。ハードウェアは人間のように判断できないため、OSが通訳兼監督役として動作します。
キーワード: OS, カーネル
カーネルとその周辺部分で構成され、プログラム→周辺部分→カーネル→ハードウェアの流れで命令が伝達されます。
VirtualBoxとの違い
DockerとVirtualBoxは仮想化技術ですが、決定的な違いは「カーネルをホストOSと共有するか否か」です。
VirtualBoxはゲストOSごとにカーネルを用意しますが、DockerはホストOSのカーネルを共有するため、軽量かつ高速に動作します。
キーワード: 仮想化技術
あとがき
私は正直、コーディングが得意ではありません😥 ですが仲間の支えでここまで続けられました。この記事が「わからない」を「わかる」に変える一助となれば嬉しいです。
BTMでは切磋琢磨しながら成長できる仲間を募集しています。エンジニア転職やキャリアチェンジをお考えの方は、ぜひBTM採用ページをご覧ください。
ここまでお読みいただきありがとうございました。したっけね~👋
-
SNS
-
投稿日
-
カテゴリー
BTM Useful