Dockerとは?(超基本編)

今回は珍しく業務領域であるIT関連の記事を書こうと思います。
テーマは「Docker」
IT初心者や新入社員の方の中には本や記事だけではどこまで理解できていればよいのか分からない方も多いと思います。
この記事ではそういった方が何も知らない人にDockerってどんなものなのかを簡単に説明できるくらいの知識を得られる内容として書いていきたいと思います。

また、今回の記事はあくまでもDockerの説明であり使い方(コマンド)については記載しませんのでご了承ください。

それでは内容に入ります。


Dockerとは

まず簡単に定義だけしておきます。
Docker=データやプログラムなどを隔離できる仕組み

まずは以下の図を見てください。
Docker Engineとその上にcontainerというものが乗っています。
まずはこれらはセットでDocker Engineの上にcontainerというものが存在するんだなと覚えてもらえればいいと思います。

DockerEngineとcontainer

ところでなぜデータやプログラムなどを隔離できる仕組みが必要となったのか。それは以下の理由からです。
・複数のパソコンで同じ環境を使いたい
・異なる環境でも同じ部品を使いたい

近年ソフトウエアはマイクロサービスという開発手法が多くとられています。
これを実現する中でこのDockerという仕組みがなくてはならないものとなったわけです。(このあたりは興味あればぜひ調べてみてください)

Dockerの仕組み

先ほどの図に2つ付け加わりました。
これがDockerの構成です。
加わったものについては名前の通りマシン(PC)とLinux OSです。
ここでOSと聞くとWindows、Macではないのか?と疑問に思うかと思います。
ここがポイントでDockerはLinux上でしか動かせません。
多くの人は使用しているOSがLinuxでないから使用できないと思うかもしれませんが、世の中はうまくできておりWindowsやMacOS上に強引にLinux OSを乗せる方法が存在しているため、それらを利用することでDockerを利用することができます。

Dockerの構成

1つ1つに分けてみてしまえば概要を把握するのはそこまで難しくないと感じるかと思います。

コンテナとは

ここまでよく出てきたコンテナという言葉、ここからはこれについて解説していきます。
基本的に開発者が使用するのがこのコンテナです。
名前の通り中身の入った箱という認識でその中にはサーバや様々なデータなど色々あります。
コンテナはどのようにして作られるのか
基本的な流れは
Docker file ⇒ Docker image ⇒ Docker Container
このようにしてContainerは作られます。

Docker file, Docke image, Docker Containerそれぞれがどういったものなのかを新しいパソコンをContainerに見立てて下図で示しています。
なるべく本質からはそれ内容にしていますが簡略化すると少し意味がずれたりする部分がありますので、そこは公式のドキュメントやQittaの記事などで補っていただければと思います。

Docker file, Docker image, Containerのイメージ

当たり前ですが同じDocker fileを使えば同じimageが作られ、同じContainerが作成されます。
これにより冒頭で述べた
複数のパソコンで同じ環境を使いたい
がDocker fileさえ配布してしまえば実現できることが容易に想像できるかと思います。

まとめ

まだまだコマンドをはじめvolumeの話やKubernatesといった話もあるにはあるのですがそのあたりは必要に応じて学べばいいと思います。
try and errorしたことでなければ使えるようにはならないと思うので。
今回の内容で覚えておかないといけない部分は太字や図で書いている部分くらいかなと思っているので大した量ではないはずです。
この記事がぜひ誰かの役に立てば幸いです。
最後まで読んでいただきありがとうございました。











この記事が気に入ったらサポートをしてみませんか?